| using Nexus.Core; | |
| namespace PhoneBook.Core.Commands | |
| { | |
| /// <summary> | |
| /// Store an entity for future reference. | |
| /// </summary> | |
| /// | |
| public class BaseSave : BaseMapper | |
| { | |
| /// <summary> | |
| /// Provide a field for KeyID property. | |
| /// </summary> | |
| /// | |
| private string _KeyID = null; | |
| /// <summary> | |
| /// Record the unique identifier for the entity. | |
| /// </summary> | |
| /// | |
| public string KeyID | |
| { | |
| get { return _KeyID; } | |
| set { _KeyID = value; } | |
| } | |
| /// <summary> | |
| /// Provide a field for InsertID property. | |
| /// </summary> | |
| private string _InsertID = null; | |
| /// <summary> | |
| /// Record the name of the "insert" mapping for the entity. | |
| /// </summary> | |
| /// | |
| public string InsertID | |
| { | |
| get { return _InsertID; } | |
| set { _InsertID = value; } | |
| } | |
| /// <summary> | |
| /// Provide a field for UpdateID property. | |
| /// </summary> | |
| /// | |
| private string _UpdateID = null; | |
| /// <summary> | |
| /// Record the name of the "update" mapping for the entity. | |
| /// </summary> | |
| /// | |
| public string UpdateID | |
| { | |
| get { return _UpdateID; } | |
| set { _UpdateID = value; } | |
| } | |
| /// <summary> | |
| /// Insert or update an entity to the persistent store. | |
| /// </summary> | |
| /// <remark><p> | |
| /// If the "fieldID" is empty, use the insertID statement, | |
| /// otherwise, use the updateID statement. | |
| /// </p></remark> | |
| /// <param name="context">The INexusContext we are processing.</param> | |
| /// <param name="fieldID">The name of the key field.</param> | |
| /// <param name="insertID">The name of the "insert" mapping for the Entity.</param> | |
| /// <param name="updateID">The name of the "update" mapping for the Entity.</param> | |
| /// <returns>False</returns> | |
| /// | |
| protected bool Save(IRequestContext context, string fieldID, string insertID, string updateID) | |
| { | |
| bool insert = IsEmpty(context[fieldID] as string); | |
| if (insert) | |
| { | |
| context[fieldID] = GuidString(); | |
| Mapper.Insert(insertID, context); | |
| } | |
| else | |
| Mapper.Update(updateID, context); | |
| return CONTINUE; | |
| } | |
| public override bool RequestExecute(IRequestContext context) | |
| { | |
| return Save(context, KeyID, InsertID, UpdateID); | |
| } | |
| } | |
| } |