コード例 #1
0
 public void SaveApartmentEmployee(apartment_employee model)
 {
     ApartmentEmployeeRepository.Save(model);
 }
コード例 #2
0
        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());
        }