public IHttpActionResult Save(Employee employee)
        {
            try
            {
                if (employee == null)
                {
                    return(BadRequest(ActionMessage.NullOrEmptyMessage));
                }
                if (string.IsNullOrEmpty(employee.EmployeeId) || string.IsNullOrEmpty(employee.EmployeeName) ||
                    employee.SectionId == Guid.Empty || string.IsNullOrEmpty(employee.ReportTo))
                {
                    return(BadRequest(ActionMessage.NullOrEmptyMessage));
                }
                if (employee.SectionId == null || employee.DesignationId == null)
                {
                    return(BadRequest("Section or Department can't be empty!"));
                }

                EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
                employees.CreatedBy = User.Identity.GetUserName();
                employees.Save(employee);
                return(Ok(ActionMessage.SaveMessage));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }
        public IHttpActionResult UploadFileEvidence(FileUploadPoco fileUpload)
        {
            try
            {
                if (fileUpload == null)
                {
                    return(BadRequest(ActionMessage.NullOrEmptyMessage));
                }
                if (fileUpload.ObjectiveId == null || fileUpload.FilePathe == null)
                {
                    return(BadRequest(fileUpload.FilePathe == null ? "We didn't get your file path" : "Objective Id can't be null or empty!"));
                }

                EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
                employees.CreatedBy = User.Identity.GetUserName();
                if (employees.CreatedBy == null)
                {
                    return(BadRequest("Authentication error"));
                }
                employees.UploadFileEvidence(fileUpload);
                return(Ok(ActionMessage.SaveMessage));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }
 public IHttpActionResult SaveDepartment(Department department)
 {
     try
     {
         if (department == null)
         {
             return(BadRequest(ActionMessage.NullOrEmptyMessage));
         }
         EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
         employees.CreatedBy = User.Identity.GetUserName();
         employees.SaveDepartment(department);
         return(Ok(ActionMessage.SaveMessage));
     }
     catch (Exception exception)
     {
         return(BadRequest(exception.Message));
     }
 }
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = new ApplicationUser()
            {
                UserName = model.EmployeeId, Email = model.Email, EmailConfirmed = true
            };

            string password = UniqueNumbers.GeneratePassword();

            try
            {
                IdentityResult result = await UserManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    var res = await UserManager.AddToRoleAsync(user.Id, model.RoleName);

                    EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
                    employees.CreatedBy = User.Identity.GetUserName();

                    employees.Save(new Employee {
                        EmployeeId = model.EmployeeId, EmployeeName = model.EmployeeName, DesignationId = model.DesignationId, SectionId = model.SectionId, Location = model.Location, ReportTo = model.ReportTo, JoiningDate = model.JoiningDate, Email = model.Email, groups = model.groups
                    });
                }

                var reportTo = await UserManager.FindByNameAsync(model.ReportTo);

                if (reportTo?.Email != null)
                {
                    var url = "/#/othersObjectives?id=" + user.UserName;
                    await UserManager.SendEmailAsync(reportTo.Id, "Confirm Job Description", "Mr/s " + model.EmployeeName + " submit a job Description.Please Approve the job description. To view the Job description please click <a href=\"" + new Uri(url) + "\">here</a>");
                }
                return(Ok("The Employee Password is " + password + " and Role is " + UserManager.GetRoles(user.Id).SingleOrDefault()));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = new ApplicationUser()
            {
                UserName = model.EmployeeId, Email = model.Email, EmailConfirmed = true
            };

            string password = UniqueNumbers.GeneratePassword();

            try
            {
                IdentityResult result = await UserManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    var res = await UserManager.AddToRoleAsync(user.Id, model.RoleName);

                    EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
                    employees.CreatedBy = User.Identity.GetUserName();

                    employees.Save(new Employee {
                        EmployeeId = model.EmployeeId, EmployeeName = model.EmployeeName, DesignationId = model.DesignationId, SectionId = model.SectionId, Location = model.Location, ReportTo = model.ReportTo, JoiningDate = model.JoiningDate, Email = model.Email, groups = model.groups
                    });
                }

                var employee = await UserManager.FindByNameAsync(model.EmployeeId);

                if (employee?.Email != null)
                {
                    var url = clientside + "/#/login";
                    await UserManager.SendEmailAsync(employee.Id, "Regisatration Confirmation", "Mr/s " + model.EmployeeName + "<br/> Your Registration is complete. Your password is: " + password + ". please click <a href=\"" + new Uri(url) + "\">here</a> to login");
                }
                return(Ok("The Employee Password is " + password + " and Role is " + UserManager.GetRoles(user.Id).SingleOrDefault()));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public IHttpActionResult SaveEvidenceFile()
        {
            string path = HttpContext.Current.Server.MapPath("~/EvidenceFiles/");

            var objective = HttpContext.Current.Request.Form["ObjectiveModel"];

            var model = JsonConvert.DeserializeObject <ObjectiveModal>(objective);

            var files = HttpContext.Current.Request.Files;

            if (files != null)
            {
                if (files.Count > 0)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        HttpPostedFile file     = files[i];
                        string         fileName = UploadFile(file, path);

                        //Here you put the business logic for update EvidenceFile
                        var objectiveId = model.objectiveId; //Get Objective Modal
                        EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
                        employees.CreatedBy = User.Identity.GetUserName();
                        if (employees.CreatedBy == null)
                        {
                            return(BadRequest("Authentication error"));
                        }
                        employees.UploadFileEvidence(new FileUploadPoco {
                            ObjectiveId = model.objectiveId, FilePathe = fileName
                        });
                    }
                }
            }
            else
            {
                return(BadRequest());
            }

            return(Ok());
        }
        public IHttpActionResult SaveSection(Section section)
        {
            try
            {
                if (section == null)
                {
                    return(BadRequest(ActionMessage.NullOrEmptyMessage));
                }
                if (section.DeparmentId == Guid.Empty || section.DeparmentId == null)
                {
                    return(BadRequest("Department can't be null"));
                }

                EmployeesActivities employees = new EmployeesActivities(new UnitOfWork());
                employees.CreatedBy = User.Identity.GetUserName();
                employees.SaveSection(section);
                return(Ok(ActionMessage.SaveMessage));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }