/// <summary> /// Private method to merge in the model /// </summary> /// <returns></returns> private ApplicationOrganisationTypeGroupVM GetUpdatedModel() { ApplicationOrganisationTypeGroupVM model = new ApplicationOrganisationTypeGroupVM(); RepopulateListsFromCacheSession(model); model.Message = ""; if (sessionManager.CurrentApplicationOrganisationTypeGroup != null) { model.ApplicationOrganisationTypeGroupItem = sessionManager.CurrentApplicationOrganisationTypeGroup; } //***************************************NEED WHITE LIST ---- BLACK LIST ------ TO PREVENT OVERPOSTING ************************** bool result = TryUpdateModel(model);//This also validates and sets ModelState //******************************************************************************************************************************* if (sessionManager.CurrentApplicationOrganisationTypeGroup != null) { //*****************************************PREVENT OVER POSTING ATTACKS****************************************************** //Get the values for read only fields from session MergeNewValuesWithOriginal(model.ApplicationOrganisationTypeGroupItem); //*************************************************************************************************************************** } SetAccessContext(model); return(model); }
public ActionResult Edit() { // Retrieve ID from session string code = sessionManager.ApplicationOrganisationTypeGroupCode; ApplicationOrganisationTypeGroupVM model = new ApplicationOrganisationTypeGroupVM(); // Not from staff or error if (String.IsNullOrEmpty(code)) { //If session has lists then use them RepopulateListsFromCacheSession(model); //Assume we are in create mode as no code passed model.ApplicationOrganisationTypeGroupItem = new ApplicationOrganisationTypeGroupModel() { IsActive = true }; } //if we have been passed a code then assume we are in edit situation and we need to retrieve from the database. else { // Create service instance IUcbService sc = UcbService; try { // Call service to get ApplicationOrganisationTypeGroup item and any associated lookups ApplicationOrganisationTypeGroupVMDC returnedObject = sc.GetApplicationOrganisationTypeGroup(CurrentUser, CurrentUser, appID, "", code); // Close service communication ((ICommunicationObject)sc).Close(); //Get view model from service model = ConvertApplicationOrganisationTypeGroupDC(returnedObject); ResolveFieldCodesToFieldNamesUsingLists(model); //Store the service version sessionManager.ApplicationOrganisationTypeGroupServiceVersion = model.ApplicationOrganisationTypeGroupItem; } catch (Exception e) { // Handle the exception string message = ExceptionManager.HandleException(e, (ICommunicationObject)sc); model.Message = message; return(View(model)); } } //Adds current retrieved ApplicationOrganisationTypeGroup to session sessionManager.CurrentApplicationOrganisationTypeGroup = model.ApplicationOrganisationTypeGroupItem; SetAccessContext(model); return(View(model)); }
private void RepopulateListsFromCacheSession(ApplicationOrganisationTypeGroupVM model) { // Populate cached lists if they are empty. Will invoke service call ApplicationOrganisationTypeGroupLookupListsCacheObject CachedLists = cacheManager.ApplicationOrganisationTypeGroupListCache; // Retrieve any cached lists to model model.ApplicationList = CachedLists.ApplicationList; model.OrganisationTypeGroupList = CachedLists.OrganisationTypeGroupList; model.RootOrganisationForApplicationList = CachedLists.RootOrganisationForApplicationList; }
private void SetFlagsFalse(ApplicationOrganisationTypeGroupVM model) { model.IsDeleteConfirmed = "False"; model.IsExitConfirmed = "False"; model.IsNewConfirmed = "False"; //Stop the binder resetting the posted values ModelState.Remove("IsDeleteConfirmed"); ModelState.Remove("IsExitConfirmed"); ModelState.Remove("IsNewConfirmed"); }
private void DetermineIsDirty(ApplicationOrganisationTypeGroupVM model) { //Compare the ApplicationOrganisationTypeGroup to the original session if (model.ApplicationOrganisationTypeGroupItem.PublicInstancePropertiesEqual(sessionManager.ApplicationOrganisationTypeGroupServiceVersion, "RowIdentifier")) { model.IsViewDirty = false; } else { model.IsViewDirty = true; } }
private void SetAccessContext(ApplicationOrganisationTypeGroupVM model) { //Decide on access context if (null == model.ApplicationOrganisationTypeGroupItem || model.ApplicationOrganisationTypeGroupItem.Code == Guid.Empty) { // Create context model.AccessContext = ApplicationOrganisationTypeGroupAccessContext.Create; } else { // Edit context model.AccessContext = ApplicationOrganisationTypeGroupAccessContext.Edit; } }
private ApplicationOrganisationTypeGroupVM ConvertApplicationOrganisationTypeGroupDC(ApplicationOrganisationTypeGroupVMDC returnedObject) { ApplicationOrganisationTypeGroupVM model = new ApplicationOrganisationTypeGroupVM(); // Map ApplicationOrganisationTypeGroup Item model.ApplicationOrganisationTypeGroupItem = Mapper.Map <ApplicationOrganisationTypeGroupDC, ApplicationOrganisationTypeGroupModel>(returnedObject.ApplicationOrganisationTypeGroupItem); // Map lookup data lists model.ApplicationList = Mapper.Map <IEnumerable <ApplicationDC>, List <ApplicationModel> >(returnedObject.ApplicationList); model.OrganisationTypeGroupList = Mapper.Map <IEnumerable <OrganisationTypeGroupDC>, List <OrganisationTypeGroupModel> >(returnedObject.OrganisationTypeGroupList); model.RootOrganisationForApplicationList = Mapper.Map <IEnumerable <OrganisationDC>, List <OrganisationModel> >(returnedObject.RootOrganisationForApplicationList); return(model); }
private void ResolveFieldCodesToFieldNamesUsingLists(ApplicationOrganisationTypeGroupVM model) { //TODO: }