public ActionResult Edit(string id) { var userdata = new UserDataContainer(); var newsItem = newsManager.GetById(id); if (newsItem == null || !userdata.IsAuthorized) { return(RedirectToRoute("NotFound")); } if (userdata.CurrentUser.Id == newsItem.AuthorId || userdata.CurrentUser.Role == Roles.Admin || userdata.CurrentUser.Role == Roles.Moderator || (userdata.CurrentUser.Role == Roles.Praepostor && userdata.CurrentUser.GroupId == newsItem.GroupId)) { var mapped = Mapper.Map <NewsItemEditViewModel, NewsItem>(newsItem); return(View(new NewsItemEditPageView() { NewsItem = mapped })); } else { return(RedirectToRoute("NotFound")); } }
public IList <NewsItem> GetListMatchingUserGroups(UserDataContainer userData, string orderBy = "PostingDate", int?count = null) { var groupManager = Resolver.GetInstance <IGroupsManager>(); var groups = new List <Guid>(); if (userData.IsAuthorized) { switch (userData.CurrentUser.Role) { case Bussines.AdditionalData.Roles.User: case Bussines.AdditionalData.Roles.Praepostor: groups.Add(userData.CurrentUser.GroupId); break; case Bussines.AdditionalData.Roles.Moderator: case Bussines.AdditionalData.Roles.Admin: foreach (var item in groupManager.GetList()) { groups.Add(item.Id); } break; default: break; } } groups.Add(groupManager.GetByName("Global").Id); return(provider.GetList(orderBy, count, groups)); }
public static async Task <int> FromDBByCreateTimeAsync(this UserDataContainer item , DateTime beginCreateTime, DateTime endCreateTime, bool sortByCreateTimeDesc, int offset = 0, int limit = 10) { item.Clear(); UserBasicDataContainer basicDataContainer = new UserBasicDataContainer(); if (await basicDataContainer.FromDBByCreateTimeAsync(beginCreateTime, endCreateTime, sortByCreateTimeDesc, offset, limit) == 0) { return(0); } List <Task <bool> > tasks = new List <Task <bool> >(); foreach (var it in basicDataContainer.Items) { var UserData = new UserData(); UserData.BasicData = it; item.Add(UserData); tasks.Add(UserData.FromDBByUserIdAsync(it.UserId, false)); } await Task.WhenAll(tasks.ToArray()); return(item.Count); }
public static async Task <int> FromDBByLikeEMailAsync(this UserDataContainer item, string email, int offset, int limit = 10) { item.Clear(); UserBasicDataContainer basicDataContainer = new UserBasicDataContainer(); if (await basicDataContainer.FromDBByLikeEMailAsync(email, offset, limit) == 0) { return(0); } List <Task <bool> > tasks = new List <Task <bool> >(); foreach (var it in basicDataContainer.Items) { var UserData = new UserData(); UserData.BasicData = it; item.Add(UserData); tasks.Add(UserData.FromDBByUserIdAsync(it.UserId, false)); } await Task.WhenAll(tasks.ToArray()); return(item.Count); }
public ActionResult Index() { if (Request.Cookies.AllKeys.Contains(CookiesNames.LandingVisited)) { var userInfo = new UserDataContainer(); var news = newsManager.GetListMatchingUserGroups(userInfo, "PostingDate"); var result = new NewsListPageView(Mapper.Map <NewsItemViewModel, NewsItem>(news)); return(View(result)); } return(RedirectToRoute("Landing")); }
public ActionResult Create(NewsItemCreatePageView pageView) { var userdata = new UserDataContainer(); if (!ModelState.IsValid) { return(View(pageView)); } var newNewsItem = pageView.NewNewsItem; newNewsItem.PrapareToPosting(userdata.CurrentUser.Id); newsManager.Create(Mapper.Map <NewsItem, NewsItemViewModel>(newNewsItem)); return(RedirectToRoute("Home")); }
public ActionResult GetList(string groupName) { var userdata = new UserDataContainer(); IEnumerable <NewsItemViewModel> news; if (groupName != "All") { news = Mapper.Map <NewsItemViewModel, NewsItem>(newsManager.GetListForGroup(groupName)); } else { news = Mapper.Map <NewsItemViewModel, NewsItem>(newsManager.GetListMatchingUserGroups(userdata)); } var result = new NewsListPageView(news); return(PartialView("NewsList", result)); }
public NewsItemCreatePageView() : base() { NewNewsItem = new NewsItemViewModel(); var userData = new UserDataContainer(); groups = new List <Group>(); if (userData.IsAuthorized) { if (userData.CurrentUser.Role == Roles.Admin || userData.CurrentUser.Role == Roles.Moderator) { foreach (var item in Resolver.GetInstance <IGroupsManager>().GetList()) { groups.Add(item); } } else if (userData.CurrentUser.Role == Roles.Praepostor) { var group = Resolver.GetInstance <IGroupsManager>().GetById(userData.CurrentUser.GroupId.ToString()); groups.Add(group); } } }
public ActionResult Delete(string id) { var userdata = new UserDataContainer(); var newsItem = newsManager.GetById(id); if (newsItem == null || !userdata.IsAuthorized) { return(RedirectToRoute("NotFound")); } if (userdata.CurrentUser.Id == newsItem.AuthorId || userdata.CurrentUser.Role == Roles.Admin || userdata.CurrentUser.Role == Roles.Moderator || (userdata.CurrentUser.Role == Roles.Praepostor && userdata.CurrentUser.GroupId == newsItem.GroupId)) { newsManager.Delete(newsItem); return(Json(true)); } else { return(RedirectToRoute("NotFound")); } }