private async Task AddDeed(Guid challengeId, DateTime deedTime, string location, double lat, double lon, string comment, int?rating, string recipient) { var deed = new Deed { CreatorId = CurrentAccess.UserId, CreateDate = DateTime.UtcNow, ChallengeId = challengeId, DeedId = Guid.NewGuid(), DeedDate = deedTime, Location = location, Lat = lat, Lon = lon, Comment = comment, Rating = rating }; if (!string.IsNullOrEmpty(recipient)) { var recipientUser = await RepositoryProvider.UserStore.FindByIdAsync(recipient); if (recipientUser == null) { return; } deed.TaggedUsers.Add(recipientUser); } RepositoryProvider.Get <DeedRepository>().Insert(deed); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 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); var emailTemplate = RepositoryProvider.Get <EmailTemplateRepository>().FirstOrDefault(p => p.Type == Enums.EmailType.ConfirmYourAccount.ToString()); if (emailTemplate != null) { emailTemplate.ReplaceWordsHolder(new KeyValuePair <string, string>("URL", callbackUrl)); await UserManager.SendEmailAsync(user.Id, emailTemplate.Title, emailTemplate.Content); } return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
// Can I view entity with primary key X? public static bool CanI <TEntity>(Abilities ability, object entityKey) where TEntity : IStoredEntity { TEntity entity = RepositoryProvider.Get <TEntity>().Load(entityKey); return(CanI <TEntity>(ability, entity, AccountRoles.Admin)); }
public IHttpActionResult PostComment(Guid challengeId, CommentBindingModel model) { if (ModelState.IsValid) { try { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(challengeId); if (challenge == null) { return(NotFound()); } var comment = new Comment(); comment.Caption = model.Caption; comment.CommentId = Guid.NewGuid(); comment.CreateDate = DateTime.Now; comment.ReferenceId = challengeId.ToString(); comment.Type = Comment.CommentType.ChallengeComment; comment.UserId = CurrentAccess.UserId; RepositoryProvider.Get <CommentRepository>().Insert(comment); RepositoryProvider.Save(); return(Ok()); } catch (Exception exception) { return(InternalServerError(exception)); } } return(BadRequest(ModelState)); }
public IHttpActionResult GetChallenges() { var challenges = RepositoryProvider.Get <ChallengeRepository>().GetAvailableChallenges(CurrentAccess.UserId); var result = challenges.Select(p => ChallengeViewModel.Create(p, CurrentAccess.UserId)).ToList(); return(Ok(result)); }
public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await UserManager.FindByNameAsync(model.Email); if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id))) { // Don't reveal that the user does not exist or is not confirmed return(View("ForgotPasswordConfirmation")); } // 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.GeneratePasswordResetTokenAsync(user.Id); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); var emailTemplate = RepositoryProvider.Get <EmailTemplateRepository>().FirstOrDefault(p => p.Type == Enums.EmailType.ResetPassword.ToString()); if (emailTemplate != null) { emailTemplate.ReplaceWordsHolder(new KeyValuePair <string, string>("URL", callbackUrl)); await UserManager.SendEmailAsync(user.Id, emailTemplate.Title, emailTemplate.Content); } return(RedirectToAction("ForgotPasswordConfirmation", "Account")); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IHttpActionResult> Overview() { var myTotalDeedCount = await RepositoryProvider.Get <DeedRepository>().Get(p => p.CreatorId == CurrentAccess.UserId).CountAsync(); var networkDeedCount = await RepositoryProvider.Get <DeedRepository>().Get( p => p.Challenge.Groups.Any(x => x.Members.Any(y => y.Id == CurrentAccess.UserId))).CountAsync(); var totalDeedCount = await RepositoryProvider.Get <DeedRepository>().Get().CountAsync(); var friendsCount = (await RepositoryProvider.UserStore.FindByIdAsync(CurrentAccess.UserId)) .JoinedGroups.SelectMany(p => p.Members).Count(p => p.Id != CurrentAccess.UserId); var result = new DeedOverViewModel { MyTotalDeedCount = myTotalDeedCount, NetworkDeedCount = networkDeedCount, TotalDeedCount = totalDeedCount, FriendsCount = friendsCount }; return(Ok(result)); }
public ActionResult Index(string type = "ALL", string id = "ALL", int pageIndex = 0, int pageSize = 0, string status = "All", string search = "", string orderBy = "Order", bool isAsc = false, string code = "All") { int count = 0; pageIndex = pageIndex < 1 ? 1 : pageIndex; pageSize = pageSize < 1 ? 20 : pageSize; Enums.ChallengeStatus challengeStatus; status = string.IsNullOrEmpty(status) || !Enum.TryParse(status, out challengeStatus) ? "All" : challengeStatus.ToString(); code = !string.IsNullOrEmpty(code) && code.ToUpper() != "ALL" ? code : "All"; orderBy = (string.IsNullOrEmpty(orderBy) || _columns.All(p => !String.Equals(p, orderBy, StringComparison.CurrentCultureIgnoreCase))) ? "Order" : orderBy; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); string subTitle = string.Empty; string preLink = "/Challenge/?type=" + type.ToUpper() + "&id=" + id; IEnumerable <ChallengeView> challengeViews; string groupCode = string.Empty; if (type.ToUpper() == "CODE" && !string.IsNullOrEmpty(id)) { var group = RepositoryProvider.Get <GroupRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Code'>Group Codes</a>><a href='/Code?type=SINGLE&id=" + group.GroupId + "'>" + group.Code + "</a>>Challenges"; groupCode = group.Code; } else if (type.ToUpper() == "USER" && !string.IsNullOrEmpty(id)) { var user = UserManager.FindById(id); subTitle = "<a href='/User'>Users</a>><a href='/User?type=SINGLE&id=" + user.Id + "'>" + user.FirstName + " " + user.LastName + "</a>>Challenges"; } else if (type.ToUpper() == "SINGLE" && !string.IsNullOrEmpty(id)) { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Challenge'>Challenges</a>>" + challenge.Name; } challengeViews = RepositoryProvider.Get <ViewRepository>() .GetChallengeViews(ref count, pageIndex, pageSize, status, search, orderBy, string.IsNullOrEmpty(groupCode) ? code : groupCode, type.ToUpper(), id, isAsc); ViewBag.PreLink = preLink; ViewBag.SubTitle = subTitle; ViewBag.Type = type.ToUpper(); ViewBag.PageIndex = pageIndex; ViewBag.PageSize = pageSize; ViewBag.ItemCount = count; ViewBag.Status = status; ViewBag.DisplayStatus = status.ToUpper() == "ALL" ? "All Statuses" : status; ViewBag.Code = code; ViewBag.DisplayCode = code.ToUpper() == "ALL" ? "All Group Codes" : code; ViewBag.Search = search; ViewBag.OrderBy = orderBy; ViewBag.IsAsc = isAsc; return(View(challengeViews)); }
public void Test1() { RepositoryProvider repository = new RepositoryProvider(); repository.Add(contentRepository); var item = repository.Get(contentRepository); Assert.AreEqual(contentRepository.Name, item.Name); Assert.AreEqual(contentRepository.DisplayName, item.DisplayName); repository.Remove(item); }
public void Test1() { RepositoryProvider repository = new RepositoryProvider(new Common.BaseDir()); repository.Add(contentRepository); var item = repository.Get(contentRepository); Assert.AreEqual(contentRepository.Name, item.Name); Assert.AreEqual(contentRepository.DisplayName, item.DisplayName); repository.Remove(item); }
public static void Log(string request, string exception) { RepositoryProvider repositryProvider = RepositoryProvider.Create(); repositryProvider.Get <ErrorMessageRepository>().Insert(new ErrorMessage() { ErrorMessageId = Guid.NewGuid(), EventDate = DateTime.UtcNow, Request = request, Exception = exception }); repositryProvider.Save(); }
public IHttpActionResult GetComments(Guid challengeId, int pageIndex = 0, int pageSize = 0) { var comments = RepositoryProvider.Get <CommentRepository>().GetComments(challengeId.ToString()); if (pageSize > 0 && pageIndex >= 0) { comments = comments.Skip(pageSize * pageIndex).Take(pageSize); } var result = comments.Select(CommentViewModel.Create); return(Ok(result)); }
public async Task <IHttpActionResult> GetMyGroup() { var group = await RepositoryProvider.Get <GroupRepository>().FirstOrDefaultAsync( p => p.Members.Any(g => g.Id == CurrentAccess.UserId)); if (group == null) { return(NotFound()); } return(Ok(GroupViewModel.Create(group))); }
public async Task <ActionResult> Create( [Bind(Include = "Name,Description,Code,Picture")] EditGroupBindingModel model) { if (ModelState.IsValid) { var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault( p => p.Name.ToUpper() == model.Name.ToUpper() || p.Code.ToUpper() == model.Code.ToUpper()); if (group != null) { ModelState.AddModelError("", "Name or Code has been used."); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Code" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { group = new Group() { GroupId = Guid.NewGuid(), Name = model.Name, Description = model.Description, Code = model.Code, CreateDate = DateTime.UtcNow, CreatorId = CurrentAccess.UserId }; if (model.Picture != null && model.Picture.ContentLength > 0) { var stream = new MemoryStream(); ImageHelper.Resize(model.Picture.InputStream, stream, 300, ImageFormat.Jpeg); var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); var newPicture = await azureStorageHelper.SaveFileStream(stream, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); group.Picture = newPicture; } RepositoryProvider.Get <GroupRepository>().Insert(group); RepositoryProvider.Save(); return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Code" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } return(View(model)); }
// GET: User/Delete/5 public async Task <ActionResult> Delete(string id) { var user = UserManager.FindById(id); var isSuccess = RepositoryProvider.Get <SPRepository>().DeleteUserById(id); if (isSuccess) { var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); if (!string.IsNullOrEmpty(user.PhotoPath)) { await azureStorageHelper.DeleteFile(user.PhotoPath, AzureStorageHelper.FileUsage.UserPhotos); } } return(Redirect(Request.UrlReferrer == null ? "/User" : Request.UrlReferrer.AbsoluteUri)); }
public ActionResult Index(string type = "ALL", string id = "ALL", int pageIndex = 0, int pageSize = 0, string search = "", string orderBy = "CreateDate", bool isAsc = false) { int count = 0; pageIndex = pageIndex < 1 ? 1 : pageIndex; pageSize = pageSize < 1 ? 20 : pageSize; orderBy = (string.IsNullOrEmpty(orderBy) || _columns.All(p => !String.Equals(p, orderBy, StringComparison.CurrentCultureIgnoreCase))) ? "CreateDate" : orderBy; string subTitle = string.Empty; string preLink = "/Code/?type=" + type.ToUpper() + "&id=" + id; IEnumerable <GroupView> codeViews; if (type.ToUpper() == "CHALLENGE" && !string.IsNullOrEmpty(id)) { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Challenge'>Challenges</a>><a href='/Challenge?type=SINGLE&id=" + challenge.ChallengeId + "'>" + challenge.Name + "</a>>Group Codes"; } else if (type.ToUpper() == "USER" && !string.IsNullOrEmpty(id)) { var user = UserManager.FindById(id); subTitle = "<a href='/User'>Users</a>><a href='/User?type=SINGLE&id=" + user.Id + "'>" + user.FirstName + " " + user.LastName + "</a>>Group Codes"; } else if (type.ToUpper() == "SINGLE" && !string.IsNullOrEmpty(id)) { var code = RepositoryProvider.Get <GroupRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Code'>Group Codes</a>>" + code.Code; } codeViews = RepositoryProvider.Get <ViewRepository>() .GetCodeViews(ref count, pageIndex, pageSize, search, orderBy, type.ToUpper(), id, isAsc); ViewBag.PreLink = preLink; ViewBag.SubTitle = subTitle; ViewBag.Type = type.ToUpper(); ViewBag.PageIndex = pageIndex; ViewBag.PageSize = pageSize; ViewBag.ItemCount = count; ViewBag.Search = search; ViewBag.OrderBy = orderBy; ViewBag.IsAsc = isAsc; return(View(codeViews)); }
public async Task <IHttpActionResult> GetChallenge(Guid challengeId) { var challenge = await RepositoryProvider.Get <ChallengeRepository>().Get(p => p.ChallengeId == challengeId) .Include("Deeds") .FirstOrDefaultAsync(); if (challenge == null) { return(NotFound()); } var result = ChallengeViewModel.Create(challenge, CurrentAccess.UserId); return(Ok(result)); }
public ActionResult Edit(string id) { ViewBag.ReturnUrl = Request.UrlReferrer == null ? "/Challenge" : Request.UrlReferrer.AbsoluteUri; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); if (string.IsNullOrEmpty(id)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(id)); if (challenge == null) { return(HttpNotFound()); } var editChallenge = new EditChallengeBindingModel() { ChallengeId = challenge.ChallengeId, Name = challenge.Name, Count = challenge.Count, Description = challenge.Description, DueDate = challenge.DueDate.ToLocalTime(), //FrequencyValue = challenge.FrequencyValue, //FrequencyCount = challenge.FrequencyCount, PictureUrl = challenge.Picture, GroupIds = challenge.Groups.Any() ? challenge.Groups.Select(p => p.GroupId.ToString()).ToArray() : null }; Enums.ChallengeStatus challengeStatus; editChallenge.Status = Enum.TryParse(challenge.Status, out challengeStatus) ? challengeStatus : Enums.ChallengeStatus.Draft; Enums.ChallengeType challengeType; editChallenge.Type = Enum.TryParse(challenge.Type, out challengeType) ? challengeType : Enums.ChallengeType.Group; //Enums.FrequencyType frequencyType; //editChallenge.FrequencyType = Enum.TryParse(challenge.FrequencyType, out frequencyType) // ? frequencyType // : Enums.FrequencyType.ByDay; return(View(editChallenge)); }
public async Task <IHttpActionResult> Join(string code) { try { await RepositoryProvider.Get <GroupRepository>().JoinGroup(CurrentAccess.UserId, code); await RepositoryProvider.SaveAsync(); } catch (GroupRepository.GroupNotFoundException) { return(BadRequest("Group not found.")); } catch (GroupRepository.AlreadyInGroupException) { return(BadRequest("Already joined this group.")); } return(Ok()); }
// GET: User/Edit/5 public ActionResult Edit(string id) { ViewBag.ReturnUrl = Request.UrlReferrer == null ? "/User" : Request.UrlReferrer.AbsoluteUri; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); if (string.IsNullOrEmpty(id)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var user = UserManager.FindById(id); if (user == null) { return(HttpNotFound()); } var editUser = new EditUserMvcViewModel() { UserId = user.Id, UserName = user.UserName, FirstName = user.FirstName, LastName = user.LastName, PhotoPath = user.PhotoPath, }; Enums.UserStatus userStauts; editUser.Status = Enum.TryParse(user.Status, out userStauts) ? userStauts : Enums.UserStatus.Inactive; var identityUserRole = user.Roles.FirstOrDefault(); if (identityUserRole != null) { var role = RoleManager.FindById(identityUserRole.RoleId); Enums.RoleType roleType; editUser.RoleName = Enum.TryParse(role.Name, out roleType) ? roleType : Enums.RoleType.User; } editUser.GroupIds = user.JoinedGroups.Any() ? user.JoinedGroups.Select(p => p.GroupId.ToString()).ToArray() : null; return(View(editUser)); }
// Can I view entity (and if I have a specific role, I surely can)? public static bool CanI <TEntity>(Abilities ability, TEntity entity, params string[] authorizedRoles) where TEntity : IStoredEntity { var principal = Thread.CurrentPrincipal as MyCustomPrincipal; if (authorizedRoles.Any(r => principal.IsInRole(r))) { return(true); } var user = RepositoryProvider.Get <Account, AccountRepository>().GetUser(principal.AccountId); // my system has only two types of users if (user is Teacher) { return(Can <Teacher, TEntity>(user as Teacher, ability, entity)); } else if (user is TrainingCenter) { return(Can <TrainingCenter, TEntity>(user as TrainingCenter, ability, entity)); } return(false); }
public async Task <IHttpActionResult> GetUsersInGroup(string q = "", int pageIndex = 0, int pageSize = 0) { var user = await RepositoryProvider.UserStore.FindByIdAsync(CurrentAccess.UserId); if (user == null) { return(NotFound()); } var groupIds = user.JoinedGroups.Select(p => p.GroupId).ToList(); var recentTaggedUsers = RepositoryProvider.Get <DeedRepository>() .Get(p => p.CreatorId == CurrentAccess.UserId && p.TaggedUsers.Any()) .OrderByDescending(p => p.CreateDate) .SelectMany(p => p.TaggedUsers) .Distinct(); var groupUser = RepositoryProvider.Get <GroupRepository>() .Get(p => groupIds.Contains(p.GroupId)) .SelectMany(p => p.Members) .OrderBy(p => p.FirstName); var result = recentTaggedUsers.Concat(groupUser) .Distinct() .Where(p => p.Id != CurrentAccess.UserId) .Include(p => p.JoinedGroups); if (!string.IsNullOrEmpty(q)) { result = SearchUser(result.AsQueryable(), q); } if (pageSize > 0) { result = result.AsEnumerable().Skip(pageIndex * pageSize).Take(pageSize).AsQueryable(); } return(Ok(result.Select(UserDetailViewModel.Create))); }
private void ChangeMarketState(Page page, string changeStateTo, string sendMailTo) { var Id = page.Request["MarketId"]; var repository = RepositoryProvider.Get(); IEntity market = repository.GetById(Id); if (market.state == changeStateTo) { if (changeStateTo == "Close") { throw new Exception("The market is already close!"); } else { throw new Exception("The market is not open!"); } } else { string currentMarketState = string.empty; string mailHeader = string.empty; if (changeStateTo == "Close") { market.Close(); currentMarketState = market.ToString() + " has been closed."; mailHeader = "market closed"; } else { market.Open(); currentMarketState = market.ToString() + " was open."; mailHeader = "market open"; } repository.SaveChangesTo(market); Notifier.SendEmailNotification(mailHeader, currentMarketState, sendMailTo); } }
public ActionResult Edit(string id) { ViewBag.ReturnUrl = Request.UrlReferrer == null ? "/Code" : Request.UrlReferrer.AbsoluteUri; if (string.IsNullOrEmpty(id)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var group = RepositoryProvider.Get <GroupRepository>().GetById(Guid.Parse(id)); if (group == null) { return(HttpNotFound()); } var editGroup = new EditGroupBindingModel() { GroupId = group.GroupId, Name = group.Name, Description = group.Description, Code = group.Code, PictureUrl = group.Picture }; return(View(editGroup)); }
public bool CanView(Teacher user, Order entity) { var predicate = PredicateBuilder.Create <Order>(x => x.Id == entity.Id && x => x.Account.Id == user.Account.Id); return(RepositoryProvider.Get <Order>().Count(predicate) > 0); }
public async Task <ActionResult> Create( [Bind(Include = "FirstName,LastName,Photo,UserName,Password,ConfirmPassword,RoleName,GroupIds,Status")] RegisterUserMvcViewModel model) { if (ModelState.IsValid) { var user = UserManager.FindByName(model.UserName); if (user != null) { ModelState.AddModelError("", "User Name has been userd."); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); Stream s = model.Photo.InputStream; ImageHelper.Resize(s, s, 300, ImageFormat.Jpeg); var photoUrl = await azureStorageHelper.SaveFileStream(s, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); user = new ApplicationUser { UserName = model.UserName, Email = model.UserName, FirstName = model.FirstName, LastName = model.LastName, PhotoPath = photoUrl, CreateDate = DateTime.UtcNow, LastLoginDate = DateTime.UtcNow, Status = model.Status.ToString() }; var role = RoleManager.FindByName(model.RoleName.ToString()); user.Roles.Add(new IdentityUserRole() { UserId = user.Id, RoleId = role.Id }); if (model.GroupIds != null && model.GroupIds.Length > 0) { foreach (var gId in model.GroupIds) { Guid id = Guid.Parse(gId); var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault(p => p.GroupId == id); if (group != null) { user.JoinedGroups.Add(group); } } } IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { await azureStorageHelper.DeleteFile(photoUrl, AzureStorageHelper.FileUsage.UserPhotos); AddErrors(result); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } } ViewBag.ReturnUrl = Request.QueryString["returnUrl"]; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View(model)); }
public async Task <ActionResult> Edit( [Bind(Include = "UserId,FirstName,LastName,PhotoPath,Photo,Status,UserName,RoleName,GroupIds")] EditUserMvcViewModel model) { if (ModelState.IsValid) { var user = UserManager.FindById(model.UserId); if (model.Photo != null && model.Photo.InputStream.Length > 0) { var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); Stream s = model.Photo.InputStream; ImageHelper.Resize(s, s, 300, ImageFormat.Jpeg); var photoUrl = await azureStorageHelper.SaveFileStream(s, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); if (!string.IsNullOrEmpty(user.PhotoPath)) { await azureStorageHelper.DeleteFile(user.PhotoPath, AzureStorageHelper.FileUsage.UserPhotos); } user.PhotoPath = photoUrl; } user.FirstName = model.FirstName; user.LastName = model.LastName; user.Status = model.Status.ToString(); user.Roles.Clear(); var role = RoleManager.FindByName(model.RoleName.ToString()); user.Roles.Add(new IdentityUserRole() { UserId = user.Id, RoleId = role.Id }); if (model.GroupIds != null && model.GroupIds.Length > 0) { user.JoinedGroups.Clear(); foreach (var gId in model.GroupIds) { Guid id = Guid.Parse(gId); var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault(p => p.GroupId == id); if (group != null) { user.JoinedGroups.Add(group); } } } IdentityResult result = await UserManager.UpdateAsync(user); if (!result.Succeeded) { AddErrors(result); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } ViewBag.ReturnUrl = Request.QueryString["returnUrl"]; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View(model)); }
public ActionResult Delete(Guid id) { RepositoryProvider.Get <DeedRepository>().Delete(id); RepositoryProvider.Save(); return(Redirect(Request.UrlReferrer == null ? "/Deed" : Request.UrlReferrer.AbsoluteUri)); }
public ActionResult Index(string type = "ALL", string subType = "ALL", string id = "ALL", int pageIndex = 0, int pageSize = 0, string search = "", string orderBy = "CreateDate", string challengeId = "All", string userId = "All", bool isAsc = false) { int count = 0; pageIndex = pageIndex < 1 ? 1 : pageIndex; pageSize = pageSize < 1 ? 20 : pageSize; orderBy = (string.IsNullOrEmpty(orderBy) || _columns.All(p => !String.Equals(p, orderBy, StringComparison.CurrentCultureIgnoreCase))) ? "CreateDate" : orderBy; challengeId = !string.IsNullOrEmpty(challengeId) && challengeId.ToUpper() != "ALL" ? challengeId : "All"; userId = !string.IsNullOrEmpty(userId) && userId.ToUpper() != "ALL" ? userId : "All"; string subTitle = string.Empty; string preLink = "/Deed/?type=" + type.ToUpper() + "&subType=" + subType.ToUpper() + "&id=" + id; IEnumerable <DeedView> deedViews; if (type.ToUpper() == "CHALLENGE" && !string.IsNullOrEmpty(id)) { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Challenge'>Challenges</a>><a href='/Challenge?type=SINGLE&id=" + challenge.ChallengeId + "'>" + challenge.Name + "</a>" + "><a href='/Deed?type=CHALLENGE&id=" + challenge.ChallengeId + "'>Deeds</a>>All"; } else if (type.ToUpper() == "USER" && !string.IsNullOrEmpty(id)) { var user = UserManager.FindById(id); subTitle = "<a href='/User'>Users</a>><a href='/User?type=SINGLE&id=" + user.Id + "'>" + user.FirstName + " " + user.LastName + "</a>" + "><a href='/Deed?type=USER&id=" + user.Id + "'>Deeds</a>>" + (subType.ToUpper() == "ALL"?"Personal":subType); } else if (type.ToUpper() == "SINGLE" && !string.IsNullOrEmpty(id)) { var deed = RepositoryProvider.Get <DeedRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Challenge'>Challenges</a>>" + deed.Challenge.Name; } deedViews = RepositoryProvider.Get <ViewRepository>().GetDeedViews(ref count, pageIndex, pageSize, search, orderBy, challengeId, userId, type, subType, id, isAsc); ViewBag.PreLink = preLink; ViewBag.SubTitle = subTitle; ViewBag.Type = type.ToUpper(); ViewBag.PageIndex = pageIndex; ViewBag.PageSize = pageSize; ViewBag.ItemCount = count; ViewBag.Search = search; ViewBag.OrderBy = orderBy; ViewBag.IsAsc = isAsc; ViewBag.ChallengeId = challengeId; if (challengeId.ToUpper() == "ALL") { ViewBag.DisplayChallenge = "All Challenges"; } else { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(challengeId)); ViewBag.DisplayChallenge = challenge.Name; } ViewBag.UserId = userId; if (userId.ToUpper() == "ALL") { ViewBag.DisplayUser = "******"; } else { var user = UserManager.FindById(userId); ViewBag.DisplayUser = user.FirstName + " " + user.LastName; } ViewBag.Challenges = RepositoryProvider.Get <ChallengeRepository>().Get().ToList(); ViewBag.Users = UserManager.Users.ToList(); return(View(deedViews)); }
public ActionResult Create() { ViewBag.ReturnUrl = Request.UrlReferrer == null ? "/User" : Request.UrlReferrer.AbsoluteUri; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View()); }
public ActionResult Index(string type = "ALL", string id = "ALL", int pageIndex = 0, int pageSize = 0, string status = "All", string search = "", string orderBy = "CreateDate", bool isAsc = false) { int count = 0; string subTitle = string.Empty; string preLink = "/User/?type=" + type.ToUpper() + "&id=" + id; pageIndex = pageIndex < 1 ? 1 : pageIndex; pageSize = pageSize < 1 ? 20 : pageSize; Enums.UserStatus userStatus; status = string.IsNullOrEmpty(status) || !Enum.TryParse(status, out userStatus) ? "All" : userStatus.ToString(); orderBy = (string.IsNullOrEmpty(orderBy) || _columns.All(p => !String.Equals(p, orderBy, StringComparison.CurrentCultureIgnoreCase))) ? "CreateDate" : orderBy; IEnumerable <UserView> userViews; if (type.ToUpper() == "CODE" && !string.IsNullOrEmpty(id)) { var group = RepositoryProvider.Get <GroupRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Code'>Group Codes</a>><a href='/Code?type=SINGLE&id=" + group.GroupId + "'>" + group.Code + "</a>>Members"; } else if (type.ToUpper() == "DEED" && !string.IsNullOrEmpty(id)) { var deed = RepositoryProvider.Get <DeedRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Deed'>Deeds</a>><a href='/Deed?type=SINGLE&id=" + deed.DeedId + "'>" + deed.Challenge.Name + "</a>>Recipients"; } else if (type.ToUpper() == "CHALLENGE" && !string.IsNullOrEmpty(id)) { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(id)); subTitle = "<a href='/Challenge'>Challenges</a>><a href='/Challenge?type=SINGLE&id=" + challenge.ChallengeId + "'>" + challenge.Name + "</a>>Users"; } else if (type.ToUpper() == "USER" && !string.IsNullOrEmpty(id)) { var user = UserManager.FindById(id); subTitle = "<a href='/User'>Users</a>><a href='/User?type=SINGLE&id=" + user.Id + "'>" + user.FirstName + " " + user.LastName + "</a>>Recipients"; } else if (type.ToUpper() == "SINGLE" && !string.IsNullOrEmpty(id)) { var user = UserManager.FindById(id); subTitle = "<a href='/User'>Users</a>>" + user.FirstName + " " + user.LastName; } userViews = RepositoryProvider.Get <ViewRepository>() .GetUserViews(ref count, pageIndex, pageSize, status, search, orderBy, type.ToUpper(), id, isAsc); ViewBag.PreLink = preLink; ViewBag.SubTitle = subTitle; ViewBag.PageIndex = pageIndex; ViewBag.PageSize = pageSize; ViewBag.ItemCount = count; ViewBag.Status = status; ViewBag.Search = search; ViewBag.OrderBy = orderBy; ViewBag.IsAsc = isAsc; return(View(userViews)); }