コード例 #1
0
        public ActionResult SaveUser(EditUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                TimesheetService.IManagement service = new TimesheetService.ManagementClient();
                TimesheetService.Employee    emp     = new TimesheetService.Employee();
                emp.Id       = model.ApiId;
                emp.LastName = model.LastName;
                emp.Name     = model.Name;
                emp.Email    = model.Email;
                service.UpdateEmployee(model.ApiId.ToString(), emp);
                var roles        = RoleManager.Roles;
                var currentRoles = UserManager.FindById(model.Id).Roles;
                foreach (var role in model.Roles)
                {
                    role.Name = roles.Single(t => t.Id == role.Id).Name;
                }
                List <string> toRemove = new List <string>();
                foreach (var item in currentRoles)
                {
                    toRemove.Add(RoleManager.FindById(item.RoleId).Name);
                }
                var toAdd = model.Roles.Where(r => r.Selected == true).Select(r => r.Name).ToArray();

                UserManager.RemoveFromRoles(model.Id, toRemove.ToArray());
                UserManager.AddToRoles(model.Id, toAdd);
                return(RedirectToAction("UserDetails", "Manage", new { id = model.Id }));
            }
            return(RedirectToAction("EditUser", "Manage", new { id = model.Id }));
        }
コード例 #2
0
        public async Task <ActionResult> AddUser(CreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                TimesheetService.IManagement service = new TimesheetService.ManagementClient();

                TimesheetService.CreateEmployee employee = new TimesheetService.CreateEmployee()
                {
                    Email    = model.Email,
                    Name     = model.Name,
                    LastName = model.LastName
                };
                var newEmployee = service.CreateEmployee(employee);

                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, ApiId = newEmployee.Id, FirstName = model.Name, LastName = model.LastName
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Users", "Manage"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #3
0
ファイル: TimesheetController.cs プロジェクト: tommol/PAI
        public async System.Threading.Tasks.Task <ActionResult> Accept(int id)
        {
            TimesheetService.IManagement service = new TimesheetService.ManagementClient();
            var currentUser = await UserManager.FindByNameAsync(User.Identity.Name);

            service.AcceptTimesheet(id.ToString(), currentUser.ApiId.ToString());
            return(RedirectToAction("Review"));
        }
コード例 #4
0
ファイル: TimesheetController.cs プロジェクト: tommol/PAI
 private CreateTimesheetStep2ViewModel fillWithDataFromService(CreateTimesheetStep2ViewModel createModel)
 {
     TimesheetService.IManagement service = new TimesheetService.ManagementClient();
     createModel.Projects = service.GetProjects(0, 0).Select(t => new SelectListItem()
     {
         Text = t.Name + "-" + t.Code, Value = t.Id.ToString()
     });
     createModel.Tasks = service.GetTasks(0, 0).Select(t => new SelectListItem()
     {
         Text = t.Name + "-" + t.Code, Value = t.Id.ToString()
     });
     return(createModel);
 }
コード例 #5
0
ファイル: TimesheetController.cs プロジェクト: tommol/PAI
        public async System.Threading.Tasks.Task <ActionResult> Review()
        {
            var currentUser = await UserManager.FindByNameAsync(User.Identity.Name);

            TimesheetService.ManagementClient client     = new TimesheetService.ManagementClient();
            TimesheetService.Timesheet[]      timesheets = client.GetTimesheetsNeedAction(currentUser.ApiId.ToString(), 0, 0);
            var model = timesheets.Select(t => new TimesheetListItemViewModel()
            {
                Id = t.Id, EndPeriod = t.EndDay, StartPeriod = t.StartDay, Status = t.Status
            });


            return(View(model));
        }
コード例 #6
0
        public ActionResult UserDetails(string id)
        {
            TimesheetService.IManagement service = new TimesheetService.ManagementClient();
            var user     = UserManager.FindById(id);
            var employee = service.GetEmployee(user.ApiId.ToString());
            var model    = new UserDetailsViewModel()
            {
                Id       = user.Id,
                Email    = user.Email,
                Name     = employee.Name,
                LastName = employee.LastName,
                ApiId    = user.ApiId,
                Roles    = user.Roles.Select(t => new RoleViewvModel()
                {
                    Id = t.RoleId, Name = RoleManager.FindById(t.RoleId).Name
                }).ToList()
            };


            return(View(model));
        }
コード例 #7
0
ファイル: TimesheetController.cs プロジェクト: tommol/PAI
        public ActionResult View(int id)
        {
            var model = new TimesheetViewModel();

            TimesheetService.IManagement service = new TimesheetService.ManagementClient();
            var timesheet = service.GetTimesheet(id.ToString());

            model.Id          = timesheet.Id;
            model.StartPeriod = timesheet.StartDay;
            model.EndPeriod   = timesheet.EndDay;
            model.Entries     = new List <TimesheetEntry>();
            var entry  = CreateEmptyEntry(model.StartPeriod);
            var sorted = timesheet.Entries.OrderBy(t => t.Date).ToArray();

            entry.Project = service.GetProject(sorted[0].ProjectId.ToString()).Name;
            entry.Task    = service.GetTask(sorted[0].TaskId.ToString()).Name;
            entry.Day1    = sorted[0].Hours;
            entry.Day2    = sorted[1].Hours;
            entry.Day3    = sorted[2].Hours;
            entry.Day4    = sorted[3].Hours;
            entry.Day5    = sorted[4].Hours;
            entry.Day6    = sorted[5].Hours;
            entry.Day7    = sorted[6].Hours;
            model.Entries.Add(entry);
            var employees = service.GetEmployees(0, 0);

            model.History = service.GetTimesheetHistory(id.ToString(), 0, 0).Select(
                t => new TimesheetHistory()
            {
                Date           = t.Change,
                PreviousStatus = t.PreviousStatus,
                NewStatus      = t.NewStatus,
                UserName       = t.Operator.Name + " " + t.Operator.LastName
            }
                ).ToList();

            return(View(model));
        }
コード例 #8
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                TimesheetService.IManagement service = new TimesheetService.ManagementClient();

                TimesheetService.CreateEmployee employee = new TimesheetService.CreateEmployee()
                {
                    Email    = model.Email,
                    Name     = "",
                    LastName = ""
                };
                var newEmployee = service.CreateEmployee(employee);

                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, ApiId = newEmployee.Id
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #9
0
ファイル: TimesheetController.cs プロジェクト: tommol/PAI
 public ActionResult Submit(CreateTimesheetStep2ViewModel model)
 {
     if (model.AddRows.HasValue)
     {
         for (int i = 0; i < model.AddRows.Value; i++)
         {
             model.Entries.Add(CreateEmptyEntry(model.StartPeriod));
         }
         model         = fillWithDataFromService(model);
         model.AddRows = null;
         return(View("Step2", model));
     }
     else
     {
         TimesheetService.IManagement     service   = new TimesheetService.ManagementClient();
         TimesheetService.CreateTimesheet timesheet = new TimesheetService.CreateTimesheet();
         timesheet.StartDay = model.StartPeriod;
         timesheet.EndDay   = model.EndPeriod;
         timesheet.UserId   = model.Owner;
         List <TimesheetService.CreateEntry> list = new List <TimesheetService.CreateEntry>();
         foreach (var entry in model.Entries)
         {
             TimesheetService.CreateEntry tmp = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date1;
             tmp.Hours     = entry.Day1;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
             tmp           = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date2;
             tmp.Hours     = entry.Day2;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
             tmp           = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date3;
             tmp.Hours     = entry.Day3;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
             tmp           = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date4;
             tmp.Hours     = entry.Day4;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
             tmp           = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date5;
             tmp.Hours     = entry.Day5;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
             tmp           = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date6;
             tmp.Hours     = entry.Day6;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
             tmp           = new TimesheetService.CreateEntry();
             tmp.Date      = entry.Date7;
             tmp.Hours     = entry.Day7;
             tmp.ProjectId = int.Parse(entry.Project);
             tmp.TaskId    = int.Parse(entry.Task);
             list.Add(tmp);
         }
         timesheet.Entries = list.ToArray();
         service.CreateTimesheet(timesheet);
         return(RedirectToAction("Index"));
     }
 }