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 })); }
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)); }
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")); }
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); }
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)); }
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)); }
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)); }
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)); }
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")); } }