public async Task <(bool, string)> AddWorkerAsync(AddWorkerModel addWorkerModel) { if (_globalVariable.IsCompanySelected) { Worker worker = new Worker() { FirstName = addWorkerModel.FirstName, LastName = addWorkerModel.LastName, DateOfBirth = addWorkerModel.BirthDate, CreationDate = DateTime.Now, IdentificationNumber = addWorkerModel.IdentificationNumber, }; worker.Company = await _companyService.GetSelectedCompanyAsync(); _context.Workers.Add(worker); await _context.SaveChangesAsync(); foreach (var item in addWorkerModel.CustomFieldValues) { CustomWorkerField customWorkerField = await GetCustomWorkerFieldByIdAsync(item.FieldId); CustomWorkerFieldValue customWorkerFieldValue = new CustomWorkerFieldValue(customWorkerField, worker, item.Value); _context.CustomWorkerFieldValues.Add(customWorkerFieldValue); await _context.SaveChangesAsync(); } return(true, "Worker Added."); } else { return(false, "Company not selected."); } }
public async Task <(bool, string)> EditWorkerAsync(EditWorkerModel editWorkerModel) { if (_globalVariable.IsCompanySelected) { Worker worker = await _context.Workers.SingleOrDefaultAsync(x => x.Id == editWorkerModel.Id); if (worker != null) { worker.IdentificationNumber = editWorkerModel.IdentificationNumber; worker.FirstName = editWorkerModel.FirstName; worker.DateOfBirth = editWorkerModel.BirthDate; _context.Workers.Update(worker); for (int i = 0; i < editWorkerModel.CustomFieldValues.Count; i++) { CustomWorkerFieldValue customWorkerFieldValue = _context.CustomWorkerFieldValues.SingleOrDefault(x => x.CustomWorkerField.Id == editWorkerModel.CustomFieldValues[i].FieldId && x.Worker.Id == worker.Id); if (customWorkerFieldValue != null) { customWorkerFieldValue.Value = editWorkerModel.CustomFieldValues[i].Value; _context.Update(customWorkerFieldValue); } else { CustomWorkerField customWorkerField = await GetCustomWorkerFieldByIdAsync(editWorkerModel.CustomFieldValues[i].FieldId); customWorkerFieldValue = new CustomWorkerFieldValue(customWorkerField, worker, editWorkerModel.CustomFieldValues[i].Value); _context.CustomWorkerFieldValues.Add(customWorkerFieldValue); await _context.SaveChangesAsync(); } } await _context.SaveChangesAsync(); return(true, "Updated"); } else { return(false, "Id's don't match."); } } else { return(false, "Company not selected."); } }