private void Validate(WinderOutputProductionCreateViewModel viewModel) { List <ValidationResult> validationResults = new List <ValidationResult>(); ValidationContext validationContext = new ValidationContext(viewModel, this.Service.ServiceProvider, null); if (!Validator.TryValidateObject(viewModel, validationContext, validationResults, true)) { throw new ServiceValidationExeption(validationContext, validationResults); } }
public async Task <IActionResult> CreateOutput([FromBody] WinderOutputProductionCreateViewModel ViewModel) { try { this.Validate(ViewModel); List <WinderOutputProduction> models = new List <WinderOutputProduction>(); foreach (WinderOutputProductionCreateViewModel.YarnOutputItemVM item in ViewModel.YarnOutputItems) { WinderOutputProduction model = new WinderOutputProduction(); model.Date = (DateTime)ViewModel.Date; model.Shift = ViewModel.Shift; model.YarnId = ViewModel.Yarn.Id != null ? (int)ViewModel.Yarn.Id : 0; model.YarnCode = ViewModel.Yarn.Code; model.YarnName = ViewModel.Yarn.Name; model.SpinningId = ViewModel.Spinning._id; model.SpinningCode = ViewModel.Spinning.code; model.SpinningName = ViewModel.Spinning.name; model.MachineId = ViewModel.Machine._id; model.MachineCode = ViewModel.Machine.code; model.MachineName = ViewModel.Machine.name; model.LotYarnId = ViewModel.LotYarn.Id != null ? (int)ViewModel.LotYarn.Id : 0;; model.LotYarnCode = ViewModel.LotYarn.Code; model.LotYarnName = ViewModel.LotYarn.Lot; model.BadOutput = (double)item.BadOutput; model.GoodOutput = (double)item.GoodOutput; model.DrumTotal = (double)item.DrumTotal; model.YarnWeightPerCone = (double)item.YarnWeightPerCone; models.Add(model); } await Service.CreateModels(models); Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE) .Ok(); return(Created(String.Concat(HttpContext.Request.Path, "/", models[0].Id), Result)); } catch (ServiceValidationExeption e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE) .Fail(e); return(BadRequest(Result)); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }