예제 #1
0
        public async Task <ActionResult> Create(ScMeasureModel model)
        {
            if (!_permissionService.Authorize(PermissionProvider.ScoreCardMeasureManagement))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                if (_scMeasureService.CheckCodeHasExisted(model.Code).Result)
                {
                    return(Content("Scorecard Measure Code has existed."));
                }

                var scMeasure = new ScMeasure()
                {
                    Name         = model.Name,
                    Note         = model.Note,
                    DisplayOrder = model.DisplayOrder,
                    Code         = model.Code,
                    IsDisplay    = model.IsDisplay,
                    IsImported   = model.IsImported,
                    Formula      = "ManualEdit"
                };

                try
                {
                    await _scMeasureService.InsertAsync(scMeasure);
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }

                return(Json(new { status = "success" }));
            }

            // If we got this far, something failed, redisplay form
            return(Content(GetErrorMessageFromModelState()));
        }
        public ActionResult UpdateScMeasureTarget(DataSourceRequest command, int supplierId, ScMeasureTargetModel scMeasureTargetModel)
        {
            if (!_permissionService.Authorize(PermissionProvider.SupplierManagement))
            {
                return(AccessDeniedView());
            }

            if (scMeasureTargetModel.Id > 0)
            {
                ScMeasureTarget scMeasureTarget = _scMeasureTargetService.GetByIdAsync(scMeasureTargetModel.Id).Result;
                if (scMeasureTarget == null)
                {
                    return(Content("ScMeasureTarget not existed."));
                }

                if (scMeasureTarget.SupplierId != supplierId)
                {
                    return(Content("Supplier Identity not match with Supplier identity of ScMeasureTarget"));
                }

                if (scMeasureTarget.ScMeasureId != scMeasureTargetModel.ScMeasureId)
                {
                    return(Content("Measure Identity not match with Measure identity of ScMeasureTarget"));
                }

                scMeasureTarget.Target = scMeasureTargetModel.Target;

                try
                {
                    _scMeasureTargetService.UpdateAsync(scMeasureTarget).Wait();
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }
            }

            else
            {
                Supplier supplier = _supplierService.GetByIdAsync(supplierId).Result;
                if (supplier == null)
                {
                    return(Content("Supplier not existed."));
                }

                ScMeasure scMeasure = _scMeasureService.GetByIdAsync(scMeasureTargetModel.ScMeasureId).Result;
                if (scMeasure == null)
                {
                    return(Content("ScMeasure not exiested."));
                }

                ScMeasureTarget existedScMeasureTarget = _scMeasureTargetService.GetScMeasureTargetBySupplierIdAndScMeasureId(supplierId, scMeasureTargetModel.ScMeasureId).Result;
                if (existedScMeasureTarget != null)
                {
                    return(Content("This ScMeasureTarget has existed."));
                }

                ScMeasureTarget scMeasureTarget = new ScMeasureTarget();
                scMeasureTarget.ScMeasureId = scMeasureTargetModel.ScMeasureId;
                scMeasureTarget.SupplierId  = supplierId;
                scMeasureTarget.Target      = scMeasureTargetModel.Target;

                try
                {
                    _scMeasureTargetService.InsertAsync(scMeasureTarget).Wait();
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }
            }

            return(Json(new { status = "success" }));
        }