Ejemplo n.º 1
0
        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.");
            }
        }
Ejemplo n.º 2
0
        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.");
            }
        }