public IHttpActionResult CreateEmployee([FromBody] EmployeeContactsViewModel model) { try { if (ModelState.IsValid) { Employee employee = new Employee(); employee.Tags = String.Join(",", model.tags.Select(x => x.TagName)); employee.CreateDate = DateTime.Now; employee.Name = model.employee.Name; employee.Surname = model.employee.Surname; employee.Deleted = false; employee.UpdateDate = DateTime.Now; _EmployeeService.Create(employee); var employeeId = employee.Id; foreach (var i in model.contactTypes) { var employeeContactType = new EmployeeProperties(); employeeContactType.EmployeeId = employeeId; employeeContactType.ContactType = i.ContactTypeName; employeeContactType.Value = i.ContactTypeValue; _EmployeeContactTypesService.Create(employeeContactType); } foreach (var i in model.tags) { var employeeTags = new EmployeeTags(); employeeTags.EmployeeId = employeeId; employeeTags.TagId = i.TagId; _EmployeeTagsService.Create(employeeTags); } return(Ok("Successfully Employee Created! ")); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse((HttpStatusCode)500, new HttpError(ex.Message)))); } }
public IHttpActionResult UpdateEmployee(int?id, [FromBody] EmployeeContactsViewModel model) { try { if (id == null) { return(NotFound()); } var employee = _EmployeeService.GetById(id); if (employee == null) { return(NotFound()); } if (ModelState.IsValid) { #region Update Employee employee.Tags = String.Join(",", model.tags.Select(x => x.TagName)); employee.Name = model.employee.Name; employee.Surname = model.employee.Surname; employee.UpdateDate = DateTime.Now; _EmployeeService.Update(employee); var employeeId = id.Value; #endregion #region Create Employee History EmployeeHistories histories = new EmployeeHistories(); histories.Name = employee.Name; histories.Surname = employee.Surname; histories.UpdatedEmployeeId = employeeId; histories.Status = "Update"; histories.CreateDate = DateTime.Now; _EmployeeHistoryService.Create(histories); var EmployeeProperties = employee.EmployeeProperties; var EmployeeTags = employee.EmployeeTags; foreach (var i in EmployeeProperties.ToList()) { _EmployeeContactTypesService.Delete(i); var employeeContactType = new EmployeeProperties(); employeeContactType.EmployeeId = employee.Id; employeeContactType.ContactType = i.ContactType; employeeContactType.Value = i.Value; employeeContactType.EmployeeHistories_Id = histories.Id; _EmployeeContactTypesService.Create(employeeContactType); } foreach (var i in EmployeeTags.ToList()) { _EmployeeTagsService.Delete(i); var employeeTags = new EmployeeTags(); employeeTags.EmployeeId = employee.Id; employeeTags.TagId = i.TagId; employeeTags.EmployeeHistories_Id = histories.Id; _EmployeeTagsService.Create(employeeTags); } #endregion #region Update Contacts and Tags foreach (var i in model.contactTypes) { var employeeContactType = new EmployeeProperties(); employeeContactType.EmployeeId = employeeId; employeeContactType.ContactType = i.ContactTypeName; employeeContactType.Value = i.ContactTypeValue; _EmployeeContactTypesService.Create(employeeContactType); } foreach (var i in model.tags) { var employeeTags = new EmployeeTags(); employeeTags.EmployeeId = employeeId; employeeTags.TagId = i.TagId; _EmployeeTagsService.Create(employeeTags); } #endregion return(Ok("Employee Updated Successfuly")); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse((HttpStatusCode)500, new HttpError(ex.Message)))); } }
public IHttpActionResult DeleteEmployee(int id = 0) { try { Employee employee = _EmployeeService.GetById(id); if (employee == null) { return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, "Employee Doesnt Exist"))); } else { #region Create Employee History EmployeeHistories histories = new EmployeeHistories(); histories.Name = employee.Name; histories.Surname = employee.Surname; histories.UpdatedEmployeeId = employee.Id; histories.Status = "Deleted"; histories.CreateDate = DateTime.Now; histories.UpdateDate = DateTime.Now; _EmployeeHistoryService.Create(histories); #endregion #region Create Contact Types nad Tags Belongs to History Table var EmployeeProperties = employee.EmployeeProperties; var EmployeeTags = employee.EmployeeTags; foreach (var i in EmployeeProperties.ToList()) { var employeeContactType = new EmployeeProperties(); employeeContactType.EmployeeId = employee.Id; employeeContactType.ContactType = i.ContactType; employeeContactType.Value = i.Value; employeeContactType.EmployeeHistories_Id = histories.Id; _EmployeeContactTypesService.Create(employeeContactType); } foreach (var i in EmployeeTags.ToList()) { var employeeTags = new EmployeeTags(); employeeTags.EmployeeId = employee.Id; employeeTags.TagId = i.TagId; employeeTags.EmployeeHistories_Id = histories.Id; _EmployeeTagsService.Create(employeeTags); } #endregion #region Update Employee's status to Deleted employee.Deleted = true; employee.DeletedDate = DateTime.Now; employee.UpdateDate = DateTime.Now; _EmployeeService.Update(employee); #endregion return(Ok("Deleted Successfuly")); } } catch (Exception ex) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse((HttpStatusCode)500, new HttpError(ex.Message)))); } }