public async Task <IActionResult> PutLabour([FromRoute] int id, [FromBody] LabourRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != request.Id) { return(BadRequest()); } var oldLabour = await _dataContext.Labours.FindAsync(request.Id); if (oldLabour == null) { return(BadRequest("Labour doesn't exists.")); } var labourType = await _dataContext.LabourTypes.FindAsync(request.LabourTypeId); if (labourType == null) { return(BadRequest("Not valid labour type.")); } var imageUrl = oldLabour.ImageUrl; if (request.ImageArray != null && request.ImageArray.Length > 0) { var stream = new MemoryStream(request.ImageArray); var guid = Guid.NewGuid().ToString(); var file = $"{guid}.jpg"; var folder = "wwwroot\\images\\Labours"; var fullPath = $"~/images/Labours/{file}"; var response = FilesHelper.UploadPhoto(stream, folder, file); if (response) { imageUrl = fullPath; } } oldLabour.Start = request.Start.ToUniversalTime(); oldLabour.ImageUrl = imageUrl; oldLabour.Name = request.Name; oldLabour.LabourType = labourType; oldLabour.Activity = request.Activity; oldLabour.Remarks = request.Remarks; _dataContext.Labours.Update(oldLabour); await _dataContext.SaveChangesAsync(); return(Ok(_converterHelper.ToLabourResponse(oldLabour))); }
public async Task <IActionResult> PostLabour([FromBody] LabourRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var employee = await _dataContext.Employees.FindAsync(request.EmployeeId); if (employee == null) { return(BadRequest("Not valid employee.")); } var labourType = await _dataContext.LabourTypes.FindAsync(request.LabourTypeId); if (labourType == null) { return(BadRequest("Not valid labour type.")); } var imageUrl = string.Empty; if (request.ImageArray != null && request.ImageArray.Length > 0) { var stream = new MemoryStream(request.ImageArray); var guid = Guid.NewGuid().ToString(); var file = $"{guid}.jpg"; var folder = "wwwroot\\images\\Labours"; var fullPath = $"~/images/Labours/{file}"; var response = FilesHelper.UploadPhoto(stream, folder, file); if (response) { imageUrl = fullPath; } } var labour = new Labour { Start = request.Start.ToUniversalTime(), ImageUrl = imageUrl, Name = request.Name, Employee = employee, LabourType = labourType, Activity = request.Activity, Remarks = request.Remarks }; _dataContext.Labours.Add(labour); await _dataContext.SaveChangesAsync(); return(Ok(_converterHelper.ToLabourResponse(labour))); }