public static void UpdateCancelReason(
            this CancelProcurementViewModel viewmodel,
            ClientFieldData[] formData)
        {
            if (viewmodel == null)
            {
                return;
            }

            var field = formData.FirstOrDefault(x => x.Name == "cancelReasonId");

            if (field != null)
            {
                viewmodel.ReasonId = field.ConvertToInt(
                    mode: ConvertModeEnum.ThrowExceptionInFail);
            }

            field = formData.FirstOrDefault(x => x.Name == "reason");
            if (field != null)
            {
                viewmodel.Reason = field.ConvertToString();
            }

            field = formData.FirstOrDefault(x => x.Name == "otherReason");
            if (field != null)
            {
                viewmodel.OtherReason = field.ConvertToString();
            }

            viewmodel.Documents.BindDataFormDocsSimpleToModel(formData, TableValue.CAN_REASON);
        }
Example #2
0
        public virtual JsonResult SaveCancelReason(string operationNumber, int procurementId)
        {
            var identifier   = string.Format("{0}-proc-{1}", operationNumber, procurementId);
            var responseView = new SaveResponse()
            {
                IsValid = true
            };

            var errorMessage = SynchronizationHelper.AccessToResources(SynchronizationHelper.EDIT_MODE, SYNC_PROCUREMENT, identifier, IDBContext.Current.UserLoginName);

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                responseView.IsValid      = false;
                responseView.ErrorMessage = errorMessage;
                return(Json(responseView));
            }

            var jsonDataRequest = PageSerializationHelper.DeserializeJsonForm(Request.Form[0]);
            var model           = PageSerializationHelper.DeserializeObject <CancelProcurementViewModel>(jsonDataRequest.SerializedData);

            if (model == null)
            {
                model = new CancelProcurementViewModel();
            }

            model.UpdateCancelReason(jsonDataRequest.ClientFieldData);

            var response = _firmProcurementService.SaveCancelReason(procurementId, model);

            responseView.IsValid      = response.IsValid;
            responseView.ErrorMessage = response.ErrorMessage;

            if (responseView.IsValid)
            {
                SynchronizationHelper.TryReleaseLock(SYNC_PROCUREMENT, identifier, IDBContext.Current.UserLoginName);
                var url = Url.Action("ProcurementList", "FirmProcurement", new { area = "Procurement" });
                responseView.UrlRedirect = url;
            }

            return(Json(responseView));
        }