Exemplo n.º 1
0
        private static async Task <UserDto> SaveUserAsync(HttpClient httpClient, Dto.CompanyDto company, Guid userId, string externalId, string userName, bool isActive, Person person, JobDataWithComp job, Guid employeeId, string progressMessage, List <MailBodyDto> mailBodyList)
        {
            UserModel model = new UserModel
            {
                Id                   = userId,
                Name                 = userName,
                UserName             = userName,
                ExternalId           = externalId,
                CompanyId            = company.CompanyId,
                CompanyCode          = company.Code,
                EmployeeId           = employeeId,
                DepartmentExternalId = job.Department.Deptid.Text,
                TypologyExternalId   = job.JobFunction.JobFunctionJobFunction.Text,
                Mail                 = person.Email.EmailAddr.Text,
                Phone                = person.PersonalPhone.Phone.Text,
                IsActive             = isActive
            };

            if (!string.IsNullOrEmpty(job.Job.HireDt.Text))
            {
                model.HireDate = Convert.ToDateTime(job.Job.HireDt.Text);
            }
            //public string SsoUserName { get; set; }
            //public bool SsoUserNameUpdatable { get; set; }
            //public DateTime? ExpirationDate { get; set; }
            //public double RequiredWeeklyHours { get; set; }
            //public double RequiredHours { get; set; }
            //public Guid ResponsibleId { get; set; }
            //public Guid UserTypeId { get; set; }
            //public double WeeklyOvertimeThresholdHours { get; set; }
            //public bool ExternalNumberUpdatable { get; set; }
            //public string ExternalNumber { get; set; }
            HttpContent contentPost = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
            var         response    = await httpClient.PostAsync("/api/users", contentPost);

            if (response.IsSuccessStatusCode)
            {
                var savedUserDto = await response.Content.ReadAsJsonAsync <UserDto>();

                await ApiHelper.SaveLogAsync(httpClient, company.Code, company.CompanyId, Updater.MyStatusId, "User", model.UserName, savedUserDto.Action, progressMessage, JsonConvert.SerializeObject(model));

                return(savedUserDto);
            }
            var errorMessage = response.Content.ReadAsStringAsync().Result;
            await ApiHelper.SaveLogAsync(httpClient, company.Code, company.CompanyId, Updater.MyStatusId, "User", model.UserName, errorMessage, progressMessage, JsonConvert.SerializeObject(model));

            return(null);
        }
Exemplo n.º 2
0
        private static async Task <bool> SaveUserTypologyAsync(HttpClient httpClient, Dto.CompanyDto company, Guid departmentId, JobDataWithComp job, string progressMessage)
        {
            var userTypologyName = job.JobFunction.JobFunctionJobFunction.Text;
            var userTypology     = await GetUserTypologyAsync(httpClient, departmentId, job.JobFunction.JobFunctionJobFunction.Text);

            if (userTypology != null)
            {
                return(true);
            }
            var userTypologyGroupModel = new UserTypologyGroupModel
            {
                CompanyId = company.CompanyId,
                Name      = userTypologyName,
                Active    = true
            };
            var saveUserTypologyGroup = await SaveUserTypologyGroupAsync(httpClient, userTypologyGroupModel, progressMessage);

            if (!saveUserTypologyGroup)
            {
                return(false);
            }
            UserTypologyModel model = new UserTypologyModel
            {
                CompanyId             = company.CompanyId,
                Name                  = userTypologyName,
                ExternalId            = userTypologyName,
                DepartmentId          = departmentId,
                UserTypologyGroupName = userTypologyName,
                Active                = true,
            };
            var saveUserTypology = await SaveUserTypologyAsync(httpClient, model, progressMessage);

            return(saveUserTypology);
        }