コード例 #1
0
        //----------------------------------------------------------------------------------------------------------
        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);
        }
コード例 #2
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #3
0
        //-------------------------------------------------------------------------------------------------
        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);
        }
コード例 #4
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #5
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #6
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #7
0
        //----------------------------------------------------------------------------------------------------------

        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);
            }
        }
コード例 #8
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #9
0
        //-----------------------------------------------------------------------------------------------------------
        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);
            }
        }
コード例 #10
0
        //-------------------------------------------------------------------------------------------------
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #13
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #14
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #15
0
        //----------------------------------------------------------------------------------------------------
        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);
            }
        }
コード例 #16
0
        //----------------------------------------------------------------------------------------------------------
        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);
        }
コード例 #17
0
        //----------------------------------------------------------------------------------------------------------

        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);
            }
        }
コード例 #18
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #19
0
        //----------------------------------------------------------------------------------------------------------

        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);
        }
コード例 #20
0
        //----------------------------------------------------------------------------------------------------------

        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);
        }
コード例 #21
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #22
0
        //----------------------------------------------------------------------------------------------------------

        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);
        }
コード例 #23
0
        //-------------------------------------------------------------------------------------------------
        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);
        }
コード例 #24
0
        //-------------------------------------------------------------------------------------------------

        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);
        }
コード例 #25
0
        //----------------------------------------------------------------------------------------------------------
        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);
            }
        }
コード例 #26
0
        //----------------------------------------------------------------------------------------------------------
        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);
            }
        }
コード例 #27
0
        //----------------------------------------------------------------------------------------------------------

        public List <IdeaStatusDto> GetAllIdeaStatus()
        {
            using (_db = new IdeaManagmentDatabaseEntities())
            {
                return(_db.IDEA_STATUS.Select(s => new IdeaStatusDto()
                {
                    Id = s.ID,
                    Title = s.TITLE
                }).ToList());
            }
        }
コード例 #28
0
        //-------------------------------------------------------------------------------------------------

        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);
            };
        }
コード例 #29
0
        //-------------------------------------------------------------------------------------------------

        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);
            };
        }
コード例 #30
0
        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);
        }