public async Task <IActionResult> ZoneAreaUpdateAsync(ZoneAreaUpdateRequest req) { req.ZoneArea.UpdatedBy = User.CurrentUserName(); var result = await _zoneAreaManager.UpdateZoneAreaAsync(req); return(Ok(result)); }
public async Task <ZoneAreaUpdateResponse> UpdateZoneAreaAsync(ZoneAreaUpdateRequest req) { var result = new ZoneAreaUpdateResponse(); var validateResult = await ValidateModel(req); if (validateResult != null && validateResult.Any()) { result.HasError = true; result.ErrorMsgs = validateResult; return(result); } req.ZoneArea.UpdatedDate = DateTime.Today; return(await _repos.UpdateZoneAreaAsync(req)); }
private async Task <IList <ErrorDTO> > ValidateModel(ZoneAreaUpdateRequest req) { var result = new List <ErrorDTO>(); var existingRecord = await _repos.GetZoneAreaByZoneAreaNameAsync(req.ZoneArea.Zone, req.ZoneArea.Name); if (existingRecord != null) { if (req.ZoneArea.Id <= 0) { result.Add(new ErrorDTO { ErrorMsg = "Duplicate Zone Detected." }); } else if (req.ZoneArea.Id > 0 && existingRecord != null && existingRecord.Id != req.ZoneArea.Id) { result.Add(new ErrorDTO { ErrorMsg = "Duplicate Zone Detected." }); } } if (string.IsNullOrWhiteSpace(req.ZoneArea.Zone)) { result.Add(new ErrorDTO { ErrorMsg = "Zone is Required" }); } if (!string.IsNullOrWhiteSpace(req.ZoneArea.Zone) && req.ZoneArea.Zone.Length > 1) { result.Add(new ErrorDTO { ErrorMsg = "Zone is limitted to 1 characters." }); } if (string.IsNullOrWhiteSpace(req.ZoneArea.Name)) { result.Add(new ErrorDTO { ErrorMsg = "Name is Required" }); } if (!string.IsNullOrWhiteSpace(req.ZoneArea.Name) && req.ZoneArea.Name.Length > 100) { result.Add(new ErrorDTO { ErrorMsg = "Name is limitted to 100 characters." }); } return(result); }
public async Task <ZoneAreaUpdateResponse> UpdateZoneAreaAsync(ZoneAreaUpdateRequest req) { using (var conn = new SqlConnection(_connectionSettings.DefaultConnection)) { var result = new ZoneAreaUpdateResponse(); const string storeproc = @"[dbo].[uspAreasUpdate_New]"; await conn.OpenAsync(); var dynParm = new { req.ZoneArea.Id, req.ZoneArea.Zone, req.ZoneArea.Name, req.ZoneArea.UpdatedBy, req.ZoneArea.UpdatedDate }; var rawResult = await conn.QueryAsync <ZoneAreaDTO>(storeproc, dynParm, null, null, CommandType.StoredProcedure); result.Data = rawResult.FirstOrDefault(); return(result); } }