public HttpResponseMessage AddAsEmployee(Guid ID, EmployeeDTO employeeDTO)
        {
            HttpResponseMessage message = new HttpResponseMessage();
            Guid SelectedBusinessID     = employeeDTO.BusinessId;

            employeeDTO = new EmployeeDTO();
            employeeDTO = db.UserProfiles.Where(a => a.Id == ID).Select(usr => new EmployeeDTO
            {
                BusinessId         = SelectedBusinessID,
                FirstName          = usr.FirstName,
                LastName           = usr.LastName,
                Email              = usr.Email,
                DateOfBirth        = usr.DateofBirth,
                MobilePhone        = usr.MobilePhone,
                Type               = EmployeeTypeDTO.External,
                IsAdmin            = false,
                BusinessLocationId = db.Employees.Where(a => a.UserProfile.Email == HttpContext.Current.User.Identity.Name && a.BusinessLocation.Business.Id == SelectedBusinessID).FirstOrDefault().BusinessLocation.Id,
                IsActive           = true,
            }).FirstOrDefault();

            using (EmployeeAPIController employeeApi = new EmployeeAPIController())
            {
                var employee = employeeApi.CreateNewEmployee(employeeDTO);
                if (employee != null)
                {
                    message = Request.CreateResponse(HttpStatusCode.OK);
                }
            }
            return(message);
        }
Exemplo n.º 2
0
        // POST: api/FileImportAPI
        public LogFileDTO PostFile(FileImportDTO filedto)
        {
            if (ModelState.IsValid)
            {
                if (ClaimsAuthorization.CheckAccess("Put", "BusinessLocationId", filedto.BusinessLocationId.ToString()))
                {
                    MemoryStream stream = new MemoryStream(filedto.FileUpload);

                    if (filedto.DataType == UploadTypesDTO.Employees)
                    {
                        Tuple <List <EmployeeDTO>, LogFileDTO> result = ValidateCSV(stream, filedto.BusinessLocationId);

                        if (result.Item2.ErrorLines == 0)
                        {
                            foreach (EmployeeDTO employeeDTO in result.Item1)
                            {
                                employeeDTO.BusinessId         = filedto.BusinessId;
                                employeeDTO.BusinessLocationId = filedto.BusinessLocationId;

                                using (var employeeAPIController = new EmployeeAPIController())
                                {
                                    employeeAPIController.CreateNewEmployee(employeeDTO, true);
                                }

                                result.Item2.LoadedSuccesfully++;
                            }
                        }
                        return(result.Item2);
                    }
                    else if (filedto.DataType == UploadTypesDTO.Roles)
                    {
                        throw new NotImplementedException();
                    }
                    else
                    {
                        return(new LogFileDTO
                        {
                            Status = "Failed",
                            LinesRead = 0
                        });
                    }
                }
                else
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "You do not have appropriate permission"));
                }
            }
            else
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }