Beispiel #1
0
        public User CreateUser(CreateUserOptions userOptions)
        {
            if (userOptions == null)
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(userOptions.FirstName) ||
                string.IsNullOrWhiteSpace(userOptions.LastName) ||
                string.IsNullOrWhiteSpace(userOptions.Address) ||
                string.IsNullOrWhiteSpace(userOptions.Email) ||
                !userOptions.Email.Contains("@") ||
                !userOptions.YearOfBirth.HasValue)
            {
                return(null);
            }
            var user = new User
            {
                FirstName   = userOptions.FirstName,
                LastName    = userOptions.LastName,
                Address     = userOptions.Address,
                Email       = userOptions.Email,
                YearOfBirth = userOptions.YearOfBirth,
                Status      = StatusUser.Active,
            };

            context_.Set <User>().Add(user);
            try
            {
                context_.SaveChanges();
                return(user);
            }
            catch (Exception)
            { return(null); }
        }
Beispiel #2
0
        public int?CreateProject(CreateProjectOptions projectOptions /*, CreateFundingPackageOptions fundOptions*/)
        {
            if (projectOptions == null)
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(projectOptions.Title) ||
                projectOptions.Budget <= 0 ||
                string.IsNullOrWhiteSpace(projectOptions.Description) ||
                projectOptions.UserId == 0)

            {
                return(null);
            }



            var project = new Project()
            {
                Title        = projectOptions.Title,
                Budget       = projectOptions.Budget,
                Description  = projectOptions.Description,
                Category     = ProjectCategory.Comics,//Category=projectOptions.category .tostring
                CreationDate = DateTime.Now,
                User         = context_.Set <User>().Find(projectOptions.UserId)
            };


            //foreach (var package in projectOptions.FundingPackageIds)
            //{
            //    var fundingPackageResult = fundingPackage_
            //        .CreateFundingPackage(fundOptions);

            //    project.ProjectFundingPackages.Add(
            //        new ProjectFundingPackage()
            //        {
            //            FundingPackage = fundingPackageResult
            //        });
            //    context_.SaveChanges();
            //}



            context_.Set <Project>().Add(project);

            context_.SaveChanges();
            return(project.Id);
        }
Beispiel #3
0
        //Project Creator creates a FundingPackage
        public FundingPackage CreateFundingPackage(
            CreateFundingPackageOptions fundOptions)
        {
            //Elegxos gia null options
            if (fundOptions == null)
            {
                return(null);
            }
            var projectId = project_.GetProjectById(fundOptions.ProjectId);

            if (projectId == null ||
                string.IsNullOrEmpty(fundOptions.DescriptionGift) ||
                fundOptions.Deposit <= 0)
            {
                return(null);
            }

            var fundingPackage = new FundingPackage()
            {
                FixedPackageAmount = fundOptions.FixedPackageAmount,
                Deposit            = fundOptions.Deposit,
                DescriptionGift    = fundOptions.DescriptionGift
            };

            context_.Add(fundingPackage);
            context_.SaveChanges();
            return(fundingPackage);
        }
        //search project by title
        public Result <Project> SearchPoject(string title)
        {
            var result  = new Result <Project>();
            var project = context.Set <Project>().SingleOrDefault(p => p.ProjectTitle == title);

            project.ProjectViews++;

            if (project == null)
            {
                result.ErrorCode = 0;
                result.ErrorText = "Project not found";

                return(result);
            }

            if (context.SaveChanges() < 1)

            {
                result.ErrorCode = 0;
                result.ErrorText = "";

                return(result);
            }

            return(result);
        }
        public Project CreateProject(CreateProjectOptions projectOptions /*, CreateFundingPackageOptions fundOptions*/)
        {
            if (projectOptions == null)
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(projectOptions.Title) ||
                projectOptions.Budget <= 0 ||
                string.IsNullOrWhiteSpace(projectOptions.Description))
            {
                return(null);
            }

            var user = user_.GetUserById(projectOptions.UserId);

            if (user == null)
            {
                return(null);
            }

            var project = new Project()
            {
                Title       = projectOptions.Title,
                Budget      = projectOptions.Budget,
                Description = projectOptions.Description,
                Category    = projectOptions.Category
            };

            //foreach (var package in projectOptions.FundingPackageIds)
            //{
            //    var fundingPackageResult = fundingPackage_
            //        .CreateFundingPackage(fundOptions);

            //    project.ProjectFundingPackages.Add(
            //        new ProjectFundingPackage()
            //        {
            //            FundingPackage = fundingPackageResult
            //        });
            //    context_.SaveChanges();
            //}

            context_.Add(project);
            user.Projects.Add(project);
            context_.SaveChanges();
            return(project);
        }
        //Project Creator creates a FundingPackage
        public FundingPackage CreateFundingPackage(
            CreateFundingPackageOptions fundOptions)
        {
            //Elegxos gia null options
            if (fundOptions == null)
            {
                return(null);
            }

            if (fundOptions.FixedPackageAmount == 0m ||
                string.IsNullOrEmpty(fundOptions.DescriptionGift))
            {
                return(null);
            }

            var fundingPackage = new FundingPackage()
            {
                DescriptionGift = fundOptions.DescriptionGift
            };

            context_.Add(fundingPackage);
            context_.SaveChanges();
            return(fundingPackage);
        }
        public Result <bool> AddCategoryToProject(string email, int projectId, string categoryName)
        {
            //cheking if the email is valid
            if (!IsvalidEmail(email))
            {
                resultbool.ErrorCode = 1;
                resultbool.ErrorText = "not valid email";
                resultbool.Data      = false;
                return(resultbool);
            }

            //chek if the projce exist
            if (!IfProjectExist(projectId))
            {
                resultbool.ErrorCode = 8;
                resultbool.ErrorText = "projet doesn’t exist";
                resultbool.Data      = false;
                return(resultbool);
            }

            //cheking if the specific user can modify this projet
            if (!IsValidateUser(email, projectId))
            {
                resultbool.ErrorCode = 3;
                resultbool.ErrorText = "This user can't modify this project";
                resultbool.Data      = false;
                return(resultbool);
            }

            //cheking if the project has already this category
            var projectCategory = context.Set <ProjectCategories>().Where(p => p.ProjectId == projectId).ToList();
            //if (projectCategory.Any(pc => pc.Category.CategoryName == categoryName))
            //{
            //    resultbool.ErrorCode = 2;
            //    resultbool.ErrorText = "the project has already this category";
            //    resultbool.Data = false;
            //    return resultbool;
            //}

            //create a new category
            var category = context.Set <Category>().SingleOrDefault(c => c.CategoryName == categoryName);

            if (category == null)
            {
                category = new Category();
                category.CategoryName = categoryName;
            }
            context.Add(category);
            if (context.SaveChanges() < 1)
            {
                resultbool.ErrorCode = 4;
                resultbool.ErrorText = "couldnt save in db";
                resultbool.Data      = false;
                return(resultbool);
            }

            //create the projectcategory
            var project            = context.Set <Project>().SingleOrDefault(p => p.ProjectId == projectId);
            var newProjectCategory = new ProjectCategories();

            newProjectCategory.Project    = project;
            newProjectCategory.ProjectId  = project.ProjectId;
            newProjectCategory.Category   = category;
            newProjectCategory.CategoryId = category.CategoryId;
            context.Add(newProjectCategory);
            if (context.SaveChanges() >= 1)
            {
                resultbool.ErrorCode = 0;
                resultbool.ErrorText = "Successfull";
                resultbool.Data      = true;
                return(resultbool);
            }
            else
            {
                resultbool.ErrorCode = 4;
                resultbool.ErrorText = "couldnt save in db";
                resultbool.Data      = false;
                return(resultbool);
            }
        }
Beispiel #8
0
        //done - checked
        public Result <User> UserRegister(string email, string name, string surname, string address,
                                          string country, string state, string zipcode, DateTime dateofbirth)
        {
            //check if the email is valid
            if (!IsvalidEmail(email))
            {
                resultUser.ErrorCode = 1;
                resultUser.ErrorText = "not valid email";
                return(resultUser);
            }

            //check if there is a name
            if (string.IsNullOrWhiteSpace(name))
            {
                resultUser.ErrorCode = 5;
                resultUser.ErrorText = "Wrong name!";
                return(resultUser);
            }

            //check if the user is over 18 years old
            if (dateofbirth.AddYears(18) > DateTime.Now)
            {
                resultUser.ErrorCode = 6;
                resultUser.ErrorText = "You are no over 18 years old !";
                return(resultUser);
            }

            //check if the user with this email already exist
            if (context.Set <User>().Any(e => e.Email == email))
            {
                resultUser.ErrorCode = 5;
                resultUser.ErrorText = "A user with that email is already exists !";
                return(resultUser);
            }

            User user = new User()
            {
                Name        = name,
                Surname     = surname,
                Email       = email,
                DateOfBirth = dateofbirth,
                Address     = address,
                Country     = country,
                State       = state,
                ZipCode     = zipcode,
                IsActive    = true
            };

            context.Add(user);

            //check if the result has been saved successfully
            if (context.SaveChanges() >= 1)
            {
                resultUser.ErrorCode = 0;
                resultUser.ErrorText = "Successfull";
                resultUser.Data      = user;
                return(resultUser);
            }
            else
            {
                resultUser.ErrorCode = 4;
                resultUser.ErrorText = "couldnt save in db";
                return(resultUser);
            }
        }
        public Project CreateProject(CreateProjectOptions projectOptions)
        {
            if (projectOptions == null)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(projectOptions.Title) ||
                projectOptions.Budget <= 0 ||
                string.IsNullOrWhiteSpace(projectOptions.Description) ||
                projectOptions.UserId == 0)
            {
                return(null);
            }

            var project = new Project()
            {
                Title        = projectOptions.Title,
                Budget       = projectOptions.Budget,
                Description  = projectOptions.Description,
                Category     = ProjectCategoryUti.GetCategory(projectOptions.Category),
                CreationDate = DateTime.Now,
                User         = context_.Set <User>().Find(projectOptions.UserId)
            };

            context_.Add(project);
            context_.SaveChanges();

            if (projectOptions.FundingPackages.Count == 0)
            {
                projectOptions.FundingPackages = new List <string>()
                {
                    "funding package 1"
                };
            }

            //if title is not unique
            try
            {
                foreach (string package in projectOptions.FundingPackages)
                {
                    var fundingPackage = new FundingPackage
                    {
                        Deposit         = 1000,
                        DescriptionGift = package,
                        Project         = project
                    };

                    context_.Set <FundingPackage>().Add(fundingPackage);
                }
                //context_.Set<Project>().Add(project);
                context_.SaveChanges();
            }
            catch (Exception)
            {
                return(null);
            }

            context_.SaveChanges();
            return(new Project
            {
                Id = project.Id,
                Budget = project.Budget,
                Category = project.Category,
                CreationDate = project.CreationDate,
                Description = project.Description,
                StatusProject = project.StatusProject,
                Title = project.Title
            });
        }