//---------------------------------------------------------------------------------------------------------- public IdeaDetailForShowDto GetSpecificIdea(int ideaId) { IdeaDetailForShowDto res = null; using (_db = new IdeaManagmentDatabaseEntities()) { var idea = _db.IDEAS.FirstOrDefault(x => x.ID == ideaId); if (idea != null) { res = new IdeaDetailForShowDto() { ID = idea.ID, POINT = idea.IDEA_POINTS.Sum(x => x.POINT), SAVE_DATE = idea.SAVE_DATE, STATUS = idea.IDEA_STATUS.TITLE, CURRENT_SITUATION = idea.CURRENT_SITUATION, PREREQUISITE = idea.PREREQUISITE, ADVANTAGES = idea.ADVANTAGES, STEPS = idea.STEPS, USERNAME = idea.USERNAME, FullName = idea.USER.FIRST_NAME + " " + idea.USER.LAST_NAME, STATUS_ID = idea.STATUS_ID } } ; } return(res); }
//------------------------------------------------------------------------------------------------- public Result Registration(UserForRegistrationDto user) { Result res = new Result(); var userFromDb = new UserQ().GetUser(user.Username.Trim()); if (userFromDb != null) { res.Value = false; res.Content = "نام کاربری موجود است"; } else { using (_db = new IdeaManagmentDatabaseEntities()) { var newUser = new USER() { EMAIL = user.Email.Trim(), FIRST_NAME = user.FirstName.Trim(), LAST_NAME = user.LastName.Trim(), USERNAME = user.Username.Trim(), PASSWORD = user.password.Trim(), SAVE_DATE = DateTime.Now }; _db.USERS.Add(newUser); _db.SaveChanges(); res.Value = true; res.Content = "کاربر ایجاد شد"; } } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <IdeaDto> GetIdeasTop10All() { List <IdeaDto> res = new List <IdeaDto>(); using (_db = new IdeaManagmentDatabaseEntities()) { var ideaPoint = _db.IDEA_POINTS.GroupBy(x => x.IDEA_ID).Select(y => new { IDEA_ID = y.Key, TOTAL_POINT = y.Sum(x => x.POINT) }).OrderByDescending(x => x.TOTAL_POINT).Take(10).ToList(); foreach (var i in ideaPoint) { var idea = _db.IDEAS.Single(z => z.ID == i.IDEA_ID); res.Add(new IdeaDto() { TITLE = idea.TITLE, TOTAL_POINT = i.TOTAL_POINT, FullName = idea.USER.FIRST_NAME + " " + idea.USER.LAST_NAME, USERNAME = idea.USERNAME, STATUS = idea.IDEA_STATUS.TITLE, SAVE_DATE = idea.SAVE_DATE }); } } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <UserForShowDto> FilterSerchingUsers(FilterUserRequestDto searchItem) { IEnumerable <UserForShowDto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { System.Linq.IQueryable <USER> users = _db.USERS; if (searchItem.Username != null && searchItem.Username.Trim().Length > 0) { users = users.Where(u => u.USERNAME.Contains(searchItem.Username.Trim())); } if (searchItem.FullName != null && searchItem.FullName.Trim().Length > 0) { if (searchItem.FullName.Trim().Contains(" ")) { var firstName = searchItem.FullName.Trim().Substring(0, searchItem.FullName.Trim().IndexOf(" ")); var lastName = searchItem.FullName.Trim().Substring(searchItem.FullName.Trim().IndexOf(" ") + 1); users = users.Where(u => u.FIRST_NAME.Contains(firstName.Trim()) && u.LAST_NAME.Contains(lastName.Trim())); } else { users = users.Where(u => u.FIRST_NAME.Contains(searchItem.FullName.Trim()) || u.LAST_NAME.Contains(searchItem.FullName.Trim())); } } switch (searchItem.RoleValue) { case 0: users = users.Where(u => u.ADMIN_FLAG == false && u.COMMITTEE_FLAG == false); break; case 1: users = users.Where(u => u.ADMIN_FLAG == false && u.COMMITTEE_FLAG == true); break; case 2: users = users.Where(u => u.ADMIN_FLAG == true && u.COMMITTEE_FLAG == false); break; case 3: users = users.Where(u => u.ADMIN_FLAG == true && u.COMMITTEE_FLAG == true); break; default: break; } res = users.ToList().Select(x => new UserForShowDto() { CommitteFlag = x.COMMITTEE_FLAG, AdminFlag = x.ADMIN_FLAG, Email = x.EMAIL, FirstName = x.FIRST_NAME, LastName = x.LAST_NAME, SaveDate = Persia.Calendar.ConvertToPersian(x.SAVE_DATE).Simple, Username = x.USERNAME }); } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <UserShowingTop10Dto> GetTop10IdeaMaker() { IEnumerable <UserShowingTop10Dto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { var resTemp = new List <UserShowingTop10Dto>(); var users = _db.USERS; foreach (var u in users) { var AllOfIdeasForSpeceficUser = _db.IDEAS.Where(x => x.USERNAME == u.USERNAME); if (AllOfIdeasForSpeceficUser.Any()) { int sumOfIdeaPoints = 0; foreach (var idea in AllOfIdeasForSpeceficUser) { sumOfIdeaPoints += _db.IDEA_POINTS.Any(x => x.IDEA_ID == idea.ID) ? _db.IDEA_POINTS.Where(x => x.IDEA_ID == idea.ID).Sum(p => p.POINT) : 0; } resTemp.Add(new UserShowingTop10Dto() { Count = AllOfIdeasForSpeceficUser.Count(), FullName = u.FIRST_NAME + " " + u.LAST_NAME, PointsCount = sumOfIdeaPoints, UserName = u.USERNAME }); } } res = resTemp.OrderByDescending(x => x.PointsCount).Take(10).ToList(); } return(res); }
//------------------------------------------------------------------------------------------------- public Result ForgetPassword(ForgetPasswordDto user) { Result res = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var findUser = _db.USERS.FirstOrDefault(x => x.EMAIL == user.Email.Trim() && x.FIRST_NAME == user.FirstName.Trim() && x.LAST_NAME == user.LastName.Trim() && x.USERNAME == user.Username.Trim()); if (findUser != null) { res.Value = true; res.Content = "" + findUser.PASSWORD; } else { res.Value = false; res.Content = "عدم وجود یا عدم مطابقت اطلاعات"; } } return(res); }
//---------------------------------------------------------------------------------------------------------- public IEnumerable <WinnerIdeaForShowDto> FilterWinnerIdea(FilterWinnerIdeaRequestDto searchItem) { using (_db = new IdeaManagmentDatabaseEntities()) { IQueryable <SELECTED_IDEA> selectedIdeas = _db.SELECTED_IDEA; if (searchItem.Year.HasValue) { selectedIdeas = selectedIdeas.Where(x => x.YEAR == searchItem.Year.Value); } if (searchItem.Month.HasValue) { selectedIdeas = selectedIdeas.Where(x => x.MONTH == searchItem.Month.Value); } var res = selectedIdeas.OrderByDescending(x => x.YEAR * (1000) + x.MONTH).Select(s => new WinnerIdeaForShowDto() { IdeaId = s.IDEA_ID, TITLE = s.IDEA.TITLE, FullName = s.IDEA.USER.FIRST_NAME + " " + s.IDEA.USER.LAST_NAME, Username = s.IDEA.USERNAME, AcceptDate = s.YEAR + "/" + s.MONTH + "/" + 1, //SaveDate = Persia.Calendar.ConvertToPersian(s.IDEA.SAVE_DATE).Simple, TotalPoints = s.IDEA.IDEA_POINTS.Sum(x => x.POINT) }).ToList(); foreach (var row in res) { row.SaveDate = Persia.Calendar.ConvertToPersian(_db.SELECTED_IDEA.First(x => x.IDEA_ID == row.IdeaId).IDEA.SAVE_DATE).Simple; } return(res); } }
//------------------------------------------------------------------------------------------------- public Result UnVoteIdea(int ideaId, string username) { Result res = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { if (!_db.IDEAS.Any(x => x.ID == ideaId)) { res.content = "ایده ی مورد نظر پیدا نشد"; res.value = false; return(res); } if (!_db.COMMITTEE_VOTE_DETAIL.Any(x => x.IDEAS_ID == ideaId)) { res.content = "رای مورد نظر پیدا نشد"; res.value = false; return(res); } else { _db.IDEAS.First(x => x.ID == ideaId).STATUS_ID = 0; _db.COMMITTEE_VOTE_DETAIL.Remove(_db.COMMITTEE_VOTE_DETAIL.First(x => x.IDEAS_ID == ideaId)); _db.SaveChanges(); } } return(res); }
//----------------------------------------------------------------------------------------------------------- public Result UpdateComment(CommentDto newcomment) { Result result = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var idea_ = _db.IDEAS.FirstOrDefault(x => x.ID == newcomment.IDEA_ID); if (idea_ == null) { result.value = false; result.content = "ایده پیدا نشد"; return(result); } var idea_comment = _db.IDEA_COMMENTS.FirstOrDefault(x => x.IDEA_ID == newcomment.IDEA_ID && x.USERNAME == newcomment.USERNAME); if (idea_comment == null) { result.value = false; result.content = "قبلا شما پیشنهادی برای این ایده ننوشته اید"; return(result); } idea_comment.COMMENT = newcomment.COMMENT; idea_comment.MODIFY_DATE = DateTime.Now; _db.SaveChanges(); result.value = true; result.content = "پیشنهاد اصلاح شد"; return(result); } }
//------------------------------------------------------------------------------------------------- public IEnumerable <IdeaDto> GetIdeasTop10All() { List <IdeaDto> res = new List <IdeaDto>(); using (_db = new IdeaManagmentDatabaseEntities()) { var ideaPoint = _db.IDEA_POINTS.GroupBy(x => x.IDEA_ID).Select(y => new { IDEA_ID = y.Key, TOTAL_POINT = y.Sum(x => x.POINT) }).OrderByDescending(x => x.TOTAL_POINT).Take(10).ToList(); foreach (var i in ideaPoint) { var idea = _db.IDEAS.Single(z => z.ID == i.IDEA_ID); res.Add(new IdeaDto() { Id = idea.ID, Title = idea.TITLE, TotalPoints = i.TOTAL_POINT, FullName = idea.USER.FIRST_NAME + " " + idea.USER.LAST_NAME, Username = idea.USERNAME, Status = idea.IDEA_STATUS.TITLE, SaveDate = Persia.Calendar.ConvertToPersian(idea.SAVE_DATE).Simple }); } } return(res); }
public Result DeleteComment(int commentId) { Result res = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var comment = _db.IDEA_COMMENTS.FirstOrDefault(x => x.ID == commentId); if (comment != null) { if (comment.IDEA.STATUS_ID > 0) { res.Value = false; res.Content = "برای ایده بررسیشده امکان حذف پیشنهاد وجود ندارد"; return(res); } var allpoints = _db.COMMENT_POINTS.Where(x => x.COMMENT_ID == commentId); if (allpoints != null && allpoints.Count() > 0) { _db.COMMENT_POINTS.RemoveRange(allpoints); } _db.IDEA_COMMENTS.Remove(comment); _db.SaveChanges(); res.Value = true; res.Content = "پیشنهاد مورد نظر حذف شد"; } else { res.Value = false; res.Content = "پیشنهاد مورد نظر یافت نشد"; } } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <int> GetYearsFromOldestIdea() { DateTime oldestTime = DateTime.Now;//first intial int nowShamsiYear = Persia.Calendar.ConvertToPersian(oldestTime).ArrayType[0]; using (_db = new IdeaManagmentDatabaseEntities()) { if (_db.IDEAS.Count() > 0) { var tempOldest = _db.IDEAS.Min(x => x.SAVE_DATE); if (tempOldest != null) { oldestTime = tempOldest; } } } int smallestShamsiYear = Persia.Calendar.ConvertToPersian(oldestTime).ArrayType[0]; List <int> years = new List <int>(); for (int i = nowShamsiYear; i >= smallestShamsiYear; i--) { years.Add(i); } return(years); }
//------------------------------------------------------------------------------------------------- public UserDetailForShowDto GetUser(string username) { UserDetailForShowDto res = null; using (_db = new IdeaManagmentDatabaseEntities()) { var user = _db.USERS.SingleOrDefault(u => u.USERNAME == username); if (user != null) { res = new UserDetailForShowDto() { ADMIN_FLAG = user.ADMIN_FLAG, COMMITTEE_FLAG = user.COMMITTEE_FLAG, EMAIL = user.EMAIL, FIRST_NAME = user.EMAIL, LAST_NAME = user.LAST_NAME, PASSWORD = user.PASSWORD, SAVE_DATE = user.SAVE_DATE, USERNAME = user.USERNAME } } ; } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <UserShowingTop10Dto> GetTop10IdeaMaker() { IEnumerable <UserShowingTop10Dto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { Dictionary <string, int> userScrs = new Dictionary <string, int>(); var idea_points = _db.IDEA_POINTS.GroupBy(x => x.IDEA_ID).Select(y => new { IDEA_ID = y.Key, TOTAL_POINT = y.Sum(x => x.POINT) }); var AllUsers = _db.USERS; foreach (var u in AllUsers) { var userAllIdeasId = u.IDEAS.Select(x => x.ID); int scr = 0; foreach (var i in userAllIdeasId) { scr += idea_points.Single(x => x.IDEA_ID == i).TOTAL_POINT; } userScrs.Add(u.USERNAME, scr); } res = userScrs.ToList().OrderByDescending(x => x.Value).Take(10).Select(u => new UserShowingTop10Dto() { Count = _db.IDEAS.Count(), UserName = u.Key, FullName = _db.USERS.Single(x => x.USERNAME == u.Key).FIRST_NAME + " " + _db.USERS.Single(x => x.USERNAME == u.Key).LAST_NAME, PointsCount = u.Value, }); } return(res); }
//---------------------------------------------------------------------------------------------------- public Result ChangeCommitteFlag(string username, int value) { Result res = new Result(); USER user; using (_db = new IdeaManagmentDatabaseEntities()) { user = _db.USERS.FirstOrDefault(u => u.USERNAME == username); if (user != null) { res.value = true; if (value == 0) { res.content = "کاربر از عضویت کمیته ارزیابی خارج شد"; user.COMMITTEE_FLAG = false; } else//1 { res.content = "کاربر عضو کمیته ارزیابی شد"; user.COMMITTEE_FLAG = true; } _db.SaveChanges(); } else { res.value = false; res.content = "کاربر یافت شد"; } return(res); } }
//---------------------------------------------------------------------------------------------------------- public IdeaDetailForShowDto GetSpecificIdea(int ideaId) { IdeaDetailForShowDto res = null; using (_db = new IdeaManagmentDatabaseEntities()) { var idea = _db.IDEAS.FirstOrDefault(x => x.ID == ideaId); if (idea != null) { res = new IdeaDetailForShowDto() { Id = idea.ID, POINT = idea.IDEA_POINTS.Sum(x => x.POINT), SAVE_DATE = Persia.Calendar.ConvertToPersian(idea.SAVE_DATE).Simple, Status = idea.IDEA_STATUS.TITLE, CurrentSituation = idea.CURRENT_SITUATION, Prerequisite = idea.PREREQUISITE, Advantages = idea.ADVANTAGES, Steps = idea.STEPS, Title = idea.TITLE, Username = idea.USERNAME, FullName = idea.USER.FIRST_NAME + " " + idea.USER.LAST_NAME, StatusId = idea.STATUS_ID } } ; } return(res); }
//---------------------------------------------------------------------------------------------------------- public Result EditIdea(int ideaId, ChangedIdeaDto ideaForChange) { Result result = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var idea = _db.IDEAS.FirstOrDefault(x => x.ID == ideaId); if (idea == null) { result.Value = false; result.Content = "ایده پیدا نشد"; return(result); } idea.USERNAME = ideaForChange.Username; idea.TITLE = ideaForChange.Title; idea.PREREQUISITE = ideaForChange.Prerequisite; idea.STEPS = ideaForChange.Steps; idea.CURRENT_SITUATION = ideaForChange.CurrentSituation; idea.ADVANTAGES = ideaForChange.Advantages; idea.MODIFY_DATE = DateTime.Now; _db.SaveChanges(); result.Value = true; result.Content = "ایده اصلاح شد"; return(result); } }
//------------------------------------------------------------------------------------------------- public UserDetailForShowDto GetUser(string username) { UserDetailForShowDto res = null; using (_db = new IdeaManagmentDatabaseEntities()) { var user = _db.USERS.SingleOrDefault(u => u.USERNAME == username); if (user != null) { res = new UserDetailForShowDto() { AdminFlag = user.ADMIN_FLAG, ComitteeFlag = user.COMMITTEE_FLAG, Email = user.EMAIL, FirstName = user.EMAIL, LastName = user.LAST_NAME, Password = user.PASSWORD, SaveDate = Persia.Calendar.ConvertToPersian(user.SAVE_DATE).Simple, Username = user.USERNAME } } ; } return(res); }
//---------------------------------------------------------------------------------------------------------- public IEnumerable <IdeaForShowDto> FilterAllNotDecidedIdea(FilterAllNotDecidedIdeaRequestDto searchItem) { IEnumerable <IdeaForShowDto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { IQueryable <IDEA> temp = _db.IDEAS.Where(x => x.STATUS_ID == 0); temp = _filterYearAndMonth(temp, searchItem.Year, searchItem.Month); res = temp.OrderByDescending(x => x.SAVE_DATE).Select(x => new IdeaForShowDto() { Id = x.ID, Username = x.USERNAME, FullName = x.USER.FIRST_NAME + " " + x.USER.LAST_NAME, Status = x.IDEA_STATUS.TITLE, StatusId = x.STATUS_ID, Title = x.TITLE, TotalPoints = x.IDEA_POINTS.Any()? x.IDEA_POINTS.Sum(w => w.POINT):0 }).ToList(); foreach (var row in res) { row.SaveDate = Persia.Calendar.ConvertToPersian(_db.IDEAS.First(x => x.ID == row.Id).SAVE_DATE).Simple; } } return(res); }
//---------------------------------------------------------------------------------------------------------- public IEnumerable <IdeaForShowDto> GetAllCurrentMontDecidedIdea() { IEnumerable <IdeaForShowDto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { IQueryable <IDEA> temp = _db.IDEAS.Where(x => x.STATUS_ID > 0); var datePersion = Persia.Calendar.ConvertToPersian(DateTime.Now); temp = _filterYearAndMonthForCommitteVote(temp, datePersion.ArrayType[0], datePersion.ArrayType[1]); res = temp.OrderByDescending(x => x.COMMITTEE_VOTE_DETAIL.SAVE_DATE).Select(x => new IdeaForShowDto() { Id = x.ID, Username = x.USERNAME, FullName = x.USER.FIRST_NAME + " " + x.USER.LAST_NAME, Status = x.IDEA_STATUS.TITLE, StatusId = x.STATUS_ID, Title = x.TITLE, TotalPoints = x.IDEA_POINTS.Any()? x.IDEA_POINTS.Sum(w => w.POINT):0 }).ToList(); foreach (var row in res) { row.SaveDate = Persia.Calendar.ConvertToPersian(_db.IDEAS.First(x => x.ID == row.Id).SAVE_DATE).Simple; } } return(res); }
//------------------------------------------------------------------------------------------------- public Result PutUserProfile(ProfileForUpdateDto newProfile) { Result res = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var user = _db.USERS.FirstOrDefault(u => u.USERNAME == newProfile.USERNAME);//username is old username and youcan't change it if (user == null) { res.value = false; res.content = "کاربر یافت نشد"; } else { user.LAST_NAME = newProfile.LAST_NAME; user.FIRST_NAME = newProfile.FIRST_NAME; user.EMAIL = newProfile.EMAIL; user.PASSWORD = newProfile.PASSWORD; user.MODIFY_DATE = DateTime.Now; _db.SaveChanges(); res.value = true; res.content = "تغییرات اعمال شد"; } } return(res); }
//---------------------------------------------------------------------------------------------------------- public IEnumerable <IdeaForShowDto> FilterSerchingIdea(FilterIdeaRequestDto searchItem) { IEnumerable <IdeaForShowDto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { IQueryable <IDEA> ideas = _db.IDEAS; if (searchItem.OnlyshowMyIdea.HasValue && searchItem.OnlyshowMyIdea.Value == true) { ideas = ideas.Where(x => x.USERNAME == searchItem.MyUsername); } else { if (searchItem.Username != null && searchItem.Username.Trim().Length > 0) { ideas = ideas.Where(x => x.USERNAME.Contains(searchItem.Username.Trim())); } if (searchItem.FullName != null && searchItem.FullName.Trim().Length > 0) { if (searchItem.FullName.Trim().Contains(" ")) { var firstName = searchItem.FullName.Trim().Substring(0, searchItem.FullName.Trim().IndexOf(" ")); var lastName = searchItem.FullName.Trim().Substring(searchItem.FullName.Trim().IndexOf(" ") + 1); ideas = ideas.Where(u => u.USER.FIRST_NAME.Contains(firstName.Trim()) && u.USER.LAST_NAME.Contains(lastName.Trim())); } else { ideas = ideas.Where(u => u.USER.FIRST_NAME.Contains(searchItem.FullName.Trim()) || u.USER.LAST_NAME.Contains(searchItem.FullName.Trim())); } } } if (searchItem.Title != null && searchItem.Title.Trim().Length > 0) { ideas = ideas.Where(x => x.TITLE.Contains(searchItem.Title.Trim())); } if (searchItem.StatusId.HasValue) //check shavad { ideas = ideas.Where(x => x.STATUS_ID == searchItem.StatusId.Value); } ideas = _filterYearAndMonth(ideas, searchItem.Year, searchItem.Month); res = ideas.OrderByDescending(x => x.SAVE_DATE).Select(x => new IdeaForShowDto() { Id = x.ID, FullName = x.USER.FIRST_NAME + " " + x.USER.LAST_NAME, Title = x.TITLE, Status = x.IDEA_STATUS.TITLE, StatusId = x.STATUS_ID, Username = x.USERNAME, TotalPoints = x.IDEA_POINTS.Any()? x.IDEA_POINTS.Sum(w => w.POINT):0 }).ToList(); foreach (var row in res) { row.SaveDate = Persia.Calendar.ConvertToPersian(_db.IDEAS.First(z => z.ID == row.Id).SAVE_DATE).Simple; } } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <IdeaDto> GetIdeasTop10CurrentMonth() { List <IdeaDto> res = new List <IdeaDto>(); //-------------------- var now = DateTime.Now; var convertedToShamsi = Persia.Calendar.ConvertToPersian(now); int currentDayOfMonth = convertedToShamsi.ArrayType[2]; var startDateDateMonthInMiladi = DateTime.Now.AddDays(-currentDayOfMonth + 1); int numberOfDaysToEndMonth = 0; //چک کردن ماه 31 روزه 30 روزه و29 روزه if (convertedToShamsi.ArrayType[1] < 7) { numberOfDaysToEndMonth = 31 - currentDayOfMonth;/// تعداد روزی که باید بریم جلو تو ماه میلادی } else if (convertedToShamsi.ArrayType[1] < 12) { numberOfDaysToEndMonth = 30 - currentDayOfMonth; } else { numberOfDaysToEndMonth = 29 - currentDayOfMonth; } var finishDateMonthInMiladi = DateTime.Now.AddDays(numberOfDaysToEndMonth); startDateDateMonthInMiladi = new DateTime(startDateDateMonthInMiladi.Year, startDateDateMonthInMiladi.Month, startDateDateMonthInMiladi.Day, 23, 59, 59); finishDateMonthInMiladi = new DateTime(finishDateMonthInMiladi.Year, finishDateMonthInMiladi.Month, finishDateMonthInMiladi.Day, 23, 59, 59); //-------------------- using (_db = new IdeaManagmentDatabaseEntities()) { var bestIdeas = _db.IDEA_POINTS. Where(p => p.IDEA.SAVE_DATE >= startDateDateMonthInMiladi && p.IDEA.SAVE_DATE <= finishDateMonthInMiladi) .GroupBy(x => x.IDEA_ID) .Select(y => new { IDEA_ID = y.Key, TOTAL_POINT = y.Sum(x => x.POINT) }).OrderByDescending(x => x.TOTAL_POINT) .Take(10); foreach (var x in bestIdeas) { var idea = _db.IDEAS.Single(i => i.ID == x.IDEA_ID); res.Add(new IdeaDto() { Id = idea.ID, Title = idea.TITLE, TotalPoints = x.TOTAL_POINT, FullName = idea.USER.FIRST_NAME + " " + idea.USER.LAST_NAME, Username = idea.USERNAME, Status = idea.IDEA_STATUS.TITLE, SaveDate = Persia.Calendar.ConvertToPersian(idea.SAVE_DATE).Simple }); } } return(res); }
//------------------------------------------------------------------------------------------------- public IEnumerable <UserForShowDto> FilterSerchingUsers(FilterUserRequestDto searchItem) { IEnumerable <UserForShowDto> res = null; using (_db = new IdeaManagmentDatabaseEntities()) { System.Linq.IQueryable <USER> users = _db.USERS; if (searchItem.Username != null && searchItem.Username.Trim().Length > 0) { users = users.Where(u => u.USERNAME.Contains(searchItem.Username.Trim())); } if (searchItem.FullName != null && searchItem.FullName.Trim().Length > 0) { if (searchItem.FullName.Trim().Contains(" ")) { var firstName = searchItem.FullName.Trim().Substring(0, searchItem.FullName.Trim().IndexOf(" ")); var lastName = searchItem.FullName.Trim().Substring(0, searchItem.FullName.Trim().IndexOf(" ")); } else { users = users.Where(u => u.FIRST_NAME.Contains(searchItem.Username.Trim()) || u.LAST_NAME.Contains(searchItem.Username.Trim())); } } switch (searchItem.PositionValue) { case 0: users = users.Where(u => u.ADMIN_FLAG == false && u.COMMITTEE_FLAG == false); break; case 1: users = users.Where(u => u.ADMIN_FLAG == false && u.COMMITTEE_FLAG == true); break; case 2: users = users.Where(u => u.ADMIN_FLAG == true && u.COMMITTEE_FLAG == false); break; case 3: default: break; } res = users.Select(x => new UserForShowDto() { COMMITTEE_FLAG = x.COMMITTEE_FLAG, ADMIN_FLAG = x.ADMIN_FLAG, EMAIL = x.EMAIL, FIRST_NAME = x.FIRST_NAME, LAST_NAME = x.LAST_NAME, SAVE_DATE = x.SAVE_DATE, USERNAME = x.USERNAME }); } return(res); }
//---------------------------------------------------------------------------------------------------------- public Result VoteToComment(VoteToCommentDto voteDetail) { Result result = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var comment_point = _db.COMMENT_POINTS.FirstOrDefault(x => x.COMMENT_ID == voteDetail.COMMENT_ID && x.USERNAME == voteDetail.USERNAME_voter); if (comment_point == null) { var comment = _db.IDEA_COMMENTS.FirstOrDefault(x => x.ID == voteDetail.COMMENT_ID); if (comment == null) { result.value = false; result.content = "پیشنهادی با این مشخصات وجود ندارد"; return(result); } var user = _db.USERS.FirstOrDefault(x => x.USERNAME == voteDetail.USERNAME_voter); if (user == null) { result.value = false; result.content = "کاربر پیدا نشد"; return(result); } ; if (comment.USERNAME == voteDetail.USERNAME_voter) { result.value = false; result.content = "به پیشنهاد خود نمی توان رای داد"; return(result); } COMMENT_POINTS comment_point2 = new COMMENT_POINTS() { COMMENT_ID = voteDetail.COMMENT_ID, SAVE_DATE = DateTime.Now, POINT = voteDetail.POINT, USERNAME = voteDetail.USERNAME_voter }; _db.COMMENT_POINTS.Add(comment_point2); _db.SaveChanges(); result.value = true; result.content = "به پیشنهاد امتیاز داده شد"; return(result); } comment_point.POINT = voteDetail.POINT; comment_point.MODIFY_DATE = DateTime.Now; _db.SaveChanges(); result.value = true; result.content = "امتیاز پیشنهاداصلاح شد"; return(result); } }
//---------------------------------------------------------------------------------------------------------- public Result VoteToIdea(IdeaPointDto voteDetail) { Result result = new Result(); using (_db = new IdeaManagmentDatabaseEntities()) { var idea_point = _db.IDEA_POINTS.FirstOrDefault(x => x.IDEA_ID == voteDetail.IdeaId && x.USERNAME == voteDetail.Username); if (idea_point == null) { var idea = _db.IDEAS.FirstOrDefault(x => x.ID == voteDetail.IdeaId); if (idea == null) { result.Value = false; result.Content = "ایده پیدا نشد"; return(result); } var user = _db.USERS.FirstOrDefault(x => x.USERNAME == voteDetail.Username); if (user == null) { result.Value = false; result.Content = "کاربر پیدا نشد"; return(result); } ; if (idea.USERNAME == voteDetail.Username) { result.Value = false; result.Content = "به ایده ی خود نمی شود رای داد"; return(result); } IDEA_POINTS idea_point_ = new IDEA_POINTS() { IDEA_ID = voteDetail.IdeaId, USERNAME = voteDetail.Username, SAVE_DATE = DateTime.Now, POINT = voteDetail.Point }; _db.IDEA_POINTS.Add(idea_point_); _db.SaveChanges(); result.Value = true; result.Content = "به ایده امتیاز داده شد"; return(result); } idea_point.POINT = voteDetail.Point; idea_point.MODIFY_DATE = DateTime.Now; _db.SaveChanges(); result.Value = true; result.Content = "امتیاز ایده اصلاح شد"; return(result); } }
//---------------------------------------------------------------------------------------------------------- public List <IdeaStatusDto> GetAllIdeaStatus() { using (_db = new IdeaManagmentDatabaseEntities()) { return(_db.IDEA_STATUS.Select(s => new IdeaStatusDto() { Id = s.ID, Title = s.TITLE }).ToList()); } }
//------------------------------------------------------------------------------------------------- public bool IsCommitteMember(string username) { using (_db = new IdeaManagmentDatabaseEntities()) { var user_ = _db.USERS.SingleOrDefault(x => x.USERNAME == username); if (user_ == null) { return(false); } return(user_.COMMITTEE_FLAG); }; }
//------------------------------------------------------------------------------------------------- public bool IsAdmin(string username) { using (_db = new IdeaManagmentDatabaseEntities()) { var user_ = _db.USERS.SingleOrDefault(x => x.USERNAME == username); if (user_ == null) { return(false); } return(user_.ADMIN_FLAG); }; }
public int GetIdeaIdByCommentId(int commentId) { int res = -1; using (_db = new IdeaManagmentDatabaseEntities()) { var comment = _db.IDEA_COMMENTS.FirstOrDefault(c => c.ID == commentId); if (comment != null) { res = comment.IDEA_ID; } } return(res); }