public questStatus Read(LookupId lookupId, out LookupEditorViewModel lookupEditorViewModel)
        {
            // Initialize
            questStatus status = null;

            lookupEditorViewModel = null;


            // Read
            Quest.Functional.MasterPricing.Lookup lookup = null;
            LookupsMgr lookupsMgr = new LookupsMgr(this.UserSession);

            status = lookupsMgr.Read(lookupId, out lookup);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }

            // Transfer model.
            lookupEditorViewModel = new LookupEditorViewModel(this.UserSession);
            BufferMgr.TransferBuffer(lookup, lookupEditorViewModel);



            return(new questStatus(Severity.Success));
        }
        public ActionResult Cancel(LookupEditorViewModel editorViewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("LogOperation failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(editorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("Authorize failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Direct user to list
            *---------------------------------------------------------------------------------------------------------------------------------*/
            return(RedirectToAction("Index", "Lookups", PropagateQueryString(Request)));
        }
        public ActionResult Edit(LookupEditorViewModel item)
        {
            if (_Validator.IsValid(item) == true)
            {
                Lookup toValue;

                if (item.Id == ApiConstants.UnsavedId)
                {
                    toValue = new Lookup();
                }
                else
                {
                    toValue =
                        _Service.GetById(item.Id);

                    if (toValue == null)
                    {
                        return(NotFound());
                    }
                }

                var adapter = new LookupEditorViewModelAdapter();

                adapter.Adapt(item, toValue);

                _Service.Save(toValue);

                return(RedirectToAction("Edit", new { id = toValue.Id }));
            }
            else
            {
                return(View(item));
            }
        }
 private void PopulateLookups(LookupEditorViewModel viewModel)
 {
     viewModel.LookupTypes = ToSelectListItems(
         _LookupService.GetAllByType("System.Lookup.Types"));
     viewModel.Statuses = ToSelectListItems(
         _LookupService.GetAllByType("System.Lookup.Status"));
 }
 private void AssertLookupValueListsArePopulated(LookupEditorViewModel actual)
 {
     Assert.IsNotNull(actual.LookupTypes, "LookupTypes");
     Assert.AreNotEqual <int>(0, actual.LookupTypes.Count,
                              "actual.LookupTypes should have items");
     Assert.IsNotNull(actual.Statuses, "Statuses");
     Assert.AreNotEqual <int>(0, actual.Statuses.Count,
                              "actual.Statuses should have items");
 }
        public ActionResult Read(LookupEditorViewModel editorViewModel)
        {
            questStatus        status             = null;
            UserMessageModeler userMessageModeler = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(editorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            LookupId lookupId = new LookupId(editorViewModel.Id);
            LookupEditorViewModel lookupEditorViewModel = null;
            LookupEditorModeler   lookupEditorModeler   = new Modelers.LookupEditorModeler(this.Request, this.UserSession);

            status = lookupEditorModeler.Read(lookupId, out lookupEditorViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success);
            lookupEditorViewModel.questStatus = status;
            return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Delete(LookupEditorViewModel lookupEditorViewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("LogOperation failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(lookupEditorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("Authorize failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            LookupId            lookupId            = new LookupId(lookupEditorViewModel.Id);
            LookupEditorModeler lookupEditorModeler = new LookupEditorModeler(this.Request, this.UserSession);

            status = lookupEditorModeler.Delete(lookupId);
            if (!questStatusDef.IsSuccess(status))
            {
                lookupEditorViewModel.questStatus = status;
                return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Lookup successfully deleted");
            lookupEditorViewModel.questStatus = status;
            return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Save(LookupEditorViewModel lookupEditorViewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                lookupEditorViewModel.questStatus = status;
                return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(lookupEditorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                lookupEditorViewModel.questStatus = status;
                return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            bool bInitialCreation = lookupEditorViewModel.Id < BaseId.VALID_ID ? true : false;
            LookupEditorModeler lookupEditorModeler = new LookupEditorModeler(this.Request, this.UserSession);

            status = lookupEditorModeler.Save(lookupEditorViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                lookupEditorViewModel.questStatus = status;
                return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Lookup successfully" + (bInitialCreation ? " created" : " updated"));
            lookupEditorViewModel.questStatus = status;
            return(Json(lookupEditorViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Index(LookupEditorViewModel editorViewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("LogOperation failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(editorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("Authorize failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return view.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            LookupEditorViewModel lookupEditorViewModel = new LookupEditorViewModel(this.UserSession, editorViewModel);

            lookupEditorViewModel.Id = editorViewModel.Id;
            if (editorViewModel.Id >= BaseId.VALID_ID)
            {
                lookupEditorViewModel.questStatus = new questStatus(Severity.Warning);
            }
            else
            {
                lookupEditorViewModel.questStatus = new questStatus(Severity.Success);
            }
            return(View(lookupEditorViewModel));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new BadRequestResult());
            }

            Lookup item;
            LookupEditorViewModel viewModel;

            if (id.Value == ApiConstants.UnsavedId)
            {
                // create new
                viewModel = new LookupEditorViewModel();

                PopulateLookups(viewModel);
                return(View(viewModel));
            }
            else
            {
                item = _Service.GetById(id.Value);

                if (item == null)
                {
                    return(NotFound());
                }
                else
                {
                    viewModel = new LookupEditorViewModel();

                    var adapter = new LookupEditorViewModelAdapter();

                    adapter.Adapt(item, viewModel);

                    PopulateLookups(viewModel);
                }
            }

            return(View(viewModel));
        }
        /*==================================================================================================================================
        * Public Methods
        *=================================================================================================================================*/

        #region CRUD
        //----------------------------------------------------------------------------------------------------------------------------------
        // CRUD
        //----------------------------------------------------------------------------------------------------------------------------------
        public questStatus Save(LookupEditorViewModel lookupEditorViewModel)
        {
            // Initialize
            questStatus status = null;


            // Transfer model
            Quest.Functional.MasterPricing.Lookup lookup = new Functional.MasterPricing.Lookup();
            BufferMgr.TransferBuffer(lookupEditorViewModel, lookup);


            // Determine if this is a create or update
            LookupsMgr lookupsMgr = new LookupsMgr(this.UserSession);

            if (lookupEditorViewModel.Id < BaseId.VALID_ID)
            {
                // Create
                LookupId lookupId = null;
                status = lookupsMgr.Create(lookup, out lookupId);
                if (!questStatusDef.IsSuccess(status))
                {
                    FormatErrorMessage(status, lookupEditorViewModel);
                    return(status);
                }
                lookupEditorViewModel.Id = lookupId.Id;
            }
            else
            {
                // Update
                status = lookupsMgr.Update(lookup);
                if (!questStatusDef.IsSuccess(status))
                {
                    FormatErrorMessage(status, lookupEditorViewModel);
                    return(status);
                }
            }
            return(new questStatus(Severity.Success));
        }