public ProjectResponce Get(string title, string creator, bool?isCanAdd)
        {
            ProjectResponce responce = new ProjectResponce();
            User            user     = UserControll.LoggedAs;

            responce.StatusCode = 200;

            if (user == null)
            {
                responce.StatusCode = 403;
                responce.ErrorMessage.Add("No access rights");
            }
            else
            {
                if (string.IsNullOrWhiteSpace(title))
                {
                    title = "";
                }
                if (string.IsNullOrWhiteSpace(creator))
                {
                    creator = "";
                }

                if (isCanAdd != null)
                {
                    responce.Projects.AddRange(db.Projects.ToList().Where(x => x.Name.Contains(title) && x.CreatorLogin.Contains(creator) && x.IsUsersCanAddTask == isCanAdd));
                }
                else
                {
                    responce.Projects.AddRange(db.Projects.Where(x => x.Name.Contains(title) && x.CreatorLogin.Contains(creator)));
                }
            }

            return(responce);
        }
        public ProjectResponce Delete(int id)
        {
            ProjectResponce responce = new ProjectResponce();

            responce.StatusCode = 200;

            if (IsNotAccessable())
            {
                responce.StatusCode = 403;
                responce.ErrorMessage.Add("No access rights");
            }
            else
            {
                Project project = db.Projects.Where(x => x.Id == id).FirstOrDefault();
                if (project == null)
                {
                    return(responce);
                }

                db.Projects.Remove(project);
                db.SaveChanges();
            }

            return(responce);
        }
        public ProjectResponce Post(Project _project)
        {
            ProjectResponce responce = new ProjectResponce();
            User            user     = UserControll.LoggedAs;

            responce.StatusCode = 200;

            if (IsNotAccessable())
            {
                responce.StatusCode = 403;
                responce.ErrorMessage.Add("No access rights");
            }
            else
            {
                if (string.IsNullOrWhiteSpace(_project.Name))
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("Name is required");
                }
                if (_project.StartTime == null)
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("Start time is required");
                }
                if (_project.EndTime == null)
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("End time is required");
                }
                if (_project.StartTime > _project.EndTime)
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("Start time need to be less than end time");
                }

                if (responce.StatusCode == 200)
                {
                    _project.CreatorLogin = UserControll.LoggedAs.Login;
                    _project.CreatedTime  = DateTime.Now;

                    db.Projects.Add(_project);
                    db.SaveChanges();
                }
            }

            return(responce);
        }
        public ProjectResponce Put(Project _project)
        {
            ProjectResponce responce = new ProjectResponce();

            responce.StatusCode = 200;

            if (IsNotAccessable())
            {
                responce.StatusCode = 403;
                responce.ErrorMessage.Add("No access rights");
            }
            else
            {
                if (string.IsNullOrWhiteSpace(_project.Name))
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("Title is required");
                }
                if (_project.StartTime == null)
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("Start time is required");
                }
                if (_project.EndTime == null)
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("End time is required");
                }
                if (_project.StartTime > _project.EndTime)
                {
                    responce.StatusCode = 400;
                    responce.ErrorMessage.Add("Start time need to be less than end time");
                }

                if (responce.StatusCode == 200)
                {
                    Project project = db.Projects.Where(x => x.Id == _project.Id).FirstOrDefault();
                    project.Name      = _project.Name;
                    project.StartTime = _project.StartTime;
                    project.EndTime   = _project.EndTime;

                    db.SaveChanges();
                }
            }

            return(responce);
        }
        public ProjectResponce Get(int id)
        {
            ProjectResponce responce = new ProjectResponce();

            responce.StatusCode = 200;

            if (UserControll.LoggedAs == null)
            {
                responce.StatusCode = 403;
                responce.ErrorMessage.Add("No access rights");
            }
            else
            {
                responce.Projects.AddRange(db.Projects.Where(x => x.Id == id));
            }

            return(responce);
        }