public void MaidTrackingIssue(ApartmentEmployeeModel model) { if (Request.Headers.TryGetValues("Token", out var values)) { var token = values.First(); var tokenModel = JsonConvert.DeserializeObject <TokenModel>(Encrypt.Base64Decode(token)); var maid = _service.GetActiveMaidById(tokenModel.Id); if (Equals(maid, null)) { ExceptionContent(HttpStatusCode.Unauthorized, "err_account_not_found"); } var apartmentEmployee = _service.GetLastApartmentEmployeeByApartmentIdAndEmployeeId(model.ApartmentId, maid.employee_id); apartmentEmployee.check_out_time = ConvertDatetime.GetCurrentUnixTimeStamp(); apartmentEmployee.check_out_geo = JsonConvert.SerializeObject(model.CheckOutGeo); apartmentEmployee.type = model.Type; _service.SaveApartmentEmployee(apartmentEmployee); var apartmentIssues = _service.GetListApartmentEmployeeIssueByApartmentEmployeeId(apartmentEmployee .apartment_employee_id); foreach (var item in apartmentIssues) { _service.DeleteApartmentEmployeeIssue(item); } var listIssue = new List <apartment_employee_issue>(); foreach (var item in model.ListIssue) { var issue = new apartment_employee_issue { apartment_employee_id = apartmentEmployee.apartment_employee_id, issue_id = item.IssueId, apartment_employee_issue_id = 0, is_complete = item.IsComplete }; listIssue.Add(issue); } _service.SaveListApartmentEmployeeIssue(listIssue); } }
public ApartmentModel GetApartmentByCode(ApartmentEmployeeModel model) { IEnumerable <string> values; if (Request.Headers.TryGetValues("Token", out values)) { var token = values.First(); var tokenModel = JsonConvert.DeserializeObject <TokenModel>(Encrypt.Base64Decode(token)); var maid = _service.GetActiveMaidById(tokenModel.Id); if (Equals(maid, null)) { ExceptionContent(HttpStatusCode.Unauthorized, "err_email_or_pass"); } var apartment = _service.GetApartmentByCode(model.ApartmentCode); if (Equals(apartment, null)) { ExceptionContent(HttpStatusCode.InternalServerError, "err_apartment_not_found"); } var contract = _service.GetCurrentParentContractByApartmentId(apartment.apartment_id); if (Equals(contract, null)) { ExceptionContent(HttpStatusCode.InternalServerError, "err_apartment_not_contract"); } var contractEmployee = _service.GetContractEmployeeByContractIdAndEmployeeId(contract.contract_id, maid.employee_id); if (Equals(contractEmployee, null) || contractEmployee.status != 1 || !Equals(contractEmployee.to_date, null)) { ExceptionContent(HttpStatusCode.Unauthorized, "err_not_authorize"); } var apartmentEmployee = _service.GetLastApartmentEmployeeNotCheckOutByEmployeeId(maid.employee_id); if (!Equals(apartmentEmployee, null)) { ExceptionContent(HttpStatusCode.Unauthorized, "err_not_complete_check"); } apartmentEmployee = new apartment_employee { apartment_employee_id = 0, check_in_time = ConvertDatetime.GetCurrentUnixTimeStamp(), check_in_geo = JsonConvert.SerializeObject(model.CheckInGeo), contract_id = contract.contract_id, employee_id = maid.employee_id, status = 1 }; _service.SaveApartmentEmployee(apartmentEmployee); return(new ApartmentModel { Id = apartment.apartment_id, Address = contract.address, Building = contract.building, NoApartment = contract.no_apartment, Project = !Equals(apartment.apartment_id, null) ? new ProjectModel { Name = apartment.project.project_content.FirstOrDefault(p => p.language == 0).name } : new ProjectModel(), Resident = new UserProfileModel { FullName = contract.resident_name, Phone = contract.resident_phone, Id = contract.user_profile1.user_profile_id, NoteList = contract.user_profile1.user_profile_note.Select(p => new UserProfileNoteModel { Id = p.user_profile_note_id, CreatedDate = p.created_date, Note = p.note }).ToList() }, PassWifi = contract.pass_wifi, WifiName = contract.wifi_name, PassDoor = contract.pass_door, WorkHour = contractEmployee.work_hour, WorkDate = contractEmployee.work_date.Split(',').ToList(), Maid = new EmployeeModel { FirstName = maid.first_name, LastName = maid.last_name }, Area = contract.area, NoBedRoom = contract.no_bedroom }); } return(new ApartmentModel()); }