public async Task <(bool, string)> DeleteWorkerAsync(DeleteWorkerModel deleteWorkerModel)
        {
            if (_globalVariable.IsCompanySelected)
            {
                Worker worker = await _context.Workers.SingleOrDefaultAsync(x => x.Id == deleteWorkerModel.Id);

                if (worker != null)
                {
                    Company company = await _companyService.GetSelectedCompanyAsync();

                    if (company.Password.Equals(deleteWorkerModel.Password))
                    {
                        if (worker.LastName.Equals(deleteWorkerModel.LastName))
                        {
                            // remove custom field values
                            _context.CustomWorkerFieldValues.RemoveRange(_context.CustomWorkerFieldValues.Where(x => x.Worker.Id == worker.Id));

                            // at the end remove the worker
                            _context.Remove(worker);
                            await _context.SaveChangesAsync();

                            return(true, "Deleted");
                        }
                        else
                        {
                            return(false, "Last name doesn't match.");
                        }
                    }
                    else
                    {
                        return(false, "Wrong password.");
                    }
                }
                else
                {
                    return(false, "Worker not found.");
                }
            }
            else
            {
                return(false, "Company not selected.");
            }
        }
Example #2
0
 public DeleteWorkerPresenter(IDeleteWorkerView deleteWorkerView)
 {
     _deleteWorkerView  = deleteWorkerView;
     _deleteWorkerModel = new DeleteWorkerModel();
 }