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