Ejemplo n.º 1
0
        public Result <Project> CreateProject(CreateProjectOptions options)
        {
            if (options == null)
            {
                return(Result <Project> .CreateFailed(StatusCode.BadRequest, "Null options"));
            }

            var user = userService_.GetUserById(options.CreatorId).Data;

            if (user == null)
            {
                return(Result <Project> .CreateFailed(StatusCode.BadRequest, $"User with {options.CreatorId} was not found"));
            }
            if (options.Category == null)
            {
                return(Result <Project> .CreateFailed(StatusCode.BadRequest, "Category not valid"));
            }
            var cat = (ProjectCategory)Enum.Parse(typeof(ProjectCategory), options.Category, true);

            var project = new Project()
            {
                Title       = options.Title,
                Description = options.Description,
                TotalFund   = options.TotalFund,
                Category    = cat,
                Deadline    = options.Deadline,
                CreatorId   = options.CreatorId
            };


            if (!project.IsValidCategory(cat) ||
                !project.IsValidDeadline(options.Deadline) ||
                !project.IsValidDescription(options.Description) ||
                !project.IsValidTitle(options.Title) ||
                !project.IsValidTotalFund(options.TotalFund) ||
                string.IsNullOrWhiteSpace(options.MediaLink))
            {
                return(Result <Project> .CreateFailed(StatusCode.BadRequest, "Please check the information is valid"));
            }
            //validation prin mpei sti vasi


            var media = new Media()
            {
                MediaLink = options.MediaLink,
                Category  = MediaCategory.Photo,
            };

            project.Media.Add(media);
            user.Projects.Add(project);

            if (context_.SaveChanges() <= 0)
            {
                return(Result <Project> .CreateFailed(
                           StatusCode.InternalServerError,
                           "Project could not be created"));
            }

            return(Result <Project> .CreateSuccessful(project));
        }
        public IActionResult CreateProjectDatabase([FromBody] CreateProjectOptions options)//landingpage
        {
            var result = projectService_.CreateProject(options);

            if (result.Success)
            {
                return(Json(result.Data));
            }
            return(StatusCode((int)result.ErrorCode, result.ErrorText));
        }
Ejemplo n.º 3
0
        public ApiResult <Project> CreateProject(CreateProjectOptions options)
        {
            if (options == null)
            {
                return(ApiResult <Project> .Failed(StatusCode.BadRequest, "Null options"));
            }

            if (options.ClientId == null)
            {
                return(ApiResult <Project> .Failed(StatusCode.BadRequest, "Client Id is empty"));
            }

            var client = context_.Set <Client>()
                         .Where(o => o.ClientId == options.ClientId)
                         .SingleOrDefault();

            if (client == null)
            {
                return(ApiResult <Project> .Failed(StatusCode.BadRequest, "Client Id not valid"));
            }

            var project = new Project()
            {
                Title             = options.Title,
                Description       = options.Description,
                Progress          = options.Progress,
                Category          = options.Category.Value,
                PostStatusUpdates = options.PostStatusUpdates,
                Photos            = options.Photos,
                Videos            = options.Videos,
                ProjectCost       = options.ProjectCost.Value,
                ClientId          = options.ClientId.Value
            };

            client.Projects.Add(project);
            context_.Update(client);

            context_.Add(project);

            try
            {
                var rows = context_.SaveChanges();
                if (rows <= 0)
                {
                    return(ApiResult <Project> .Failed(
                               StatusCode.InternalServerError, "Project could not be created"));
                }
            }
            catch (Exception ex)
            {
                return(ApiResult <Project> .Failed(StatusCode.InternalServerError, ex.ToString()));
            }

            return(ApiResult <Project> .Successful(project));
        }
        public IActionResult CreateProject([FromBody] CreateProjectOptions options)
        {
            var result = _projectService.CreateProject(Globals.UserId, options);

            if (!result.Success)
            {
                return(StatusCode((int)result.ErrorCode,
                                  result.ErrorText));
            }

            return(Ok());
        }
Ejemplo n.º 5
0
        public bool IsValidProjectOptions(CreateProjectOptions options)
        {
            if ((string.IsNullOrWhiteSpace(options.Title) ||
                 string.IsNullOrWhiteSpace(options.Description) ||
                 !Enum.IsDefined(typeof(ProjectCategory), options.Category)) ||
                options.MediaUrls.Count == 0 ||
                options.FinancialGoal <= 0m)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
        public IActionResult Create([FromBody] CreateProjectOptions options)
        {
            var result = projectService.CreateProject(options);

            if (!result.Success)
            {
                return(StatusCode((int)result.ErrorCode, result.ErrorText));
            }

            //return Ok();
            return(Json(new {
                projectId = result.Data.ProjectId,
                description = result.Data.Description,
                title = result.Data.Title
            }));
        }
Ejemplo n.º 8
0
        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);
        }
        public IActionResult Create([FromBody] CreateProjectOptions options, [FromQuery] int numberOfPackages)
        {
            var createdp = projectService_.CreateProject(options);

            if (!createdp.Success)
            {
                return(StatusCode((int)createdp.ErrorCode, createdp.ErrorText));
            }

            return(Json(new
            {
                result = "Redirect",
                url = Url.Action("AddPackages", "Project",
                                 new
                {
                    projectId = createdp.Data.ProjectId,
                    numberOfPackages,
                })
            }));
        }
Ejemplo n.º 10
0
        public Project Create(CreateProjectOptions options)
        {
            if (options == null)
            {
                return(null);
            }
            var project = new Project()
            {
                Title       = options.Title,
                Description = options.Description,
                TargetFund  = options.TargetFund,
                CurrentFund = options.CurrentFund
            };

            context_.Add(project);
            if (context_.SaveChanges() > 0)
            {
                return(project);
            }
            return(null);
        }
Ejemplo n.º 11
0
        public Result <Project> CreateProject(CreateProjectOptions options)
        {
            if (options == null)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Null options"));
            }

            if (string.IsNullOrWhiteSpace(options.Name))
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Null or empty Name"));
            }

            if (string.IsNullOrWhiteSpace(options.Description))
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Null or empty Description"));
            }

            if (options.AmountRequired <= 0 || options.AmountRequired == null)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Null or empty AmountRequired"));
            }

            if (options.DueTo == null || options.DueTo.CompareTo(options.CreatedOn) <= 0)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Invalid Due to date"));
            }

            if (options.Videos == null || options.Videos.Any() == false)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "No Videos given"));
            }

            if (options.Photos == null || options.Photos.Any() == false)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "No Photos given"));
            }

            if ((int)options.Category < 1 || (int)options.Category > 8)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Null or invalid Category"));
            }

            var user = userService_
                       .GetById(options.UserId)
                       .Include(x => x.CreatedProjectsList)
                       .SingleOrDefault();

            if (user == null)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.BadRequest, "Invalid User"));
            }

            var project = new Project()
            {
                Name           = options.Name,
                Description    = options.Description,
                Category       = options.Category,
                AmountRequired = options.AmountRequired.Value,
                DueTo          = options.DueTo,
                User           = user,
            };

            foreach (var photo in options.Photos)
            {
                var a = new Photo()
                {
                    Url = photo,
                };
                project.Photos.Add(a);
            }

            foreach (var video in options.Videos)
            {
                var v = new Video()
                {
                    Url = video,
                };
                project.Videos.Add(v);
            }
            user.CreatedProjectsList.Add(project);

            var rows = 0;

            try
            {
                rows = context_.SaveChanges();
            }
            catch (Exception ex)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.InternalServerError, ex.ToString()));
            }

            if (rows <= 0)
            {
                return(Result <Project> .ActionFailed(
                           StatusCode.InternalServerError,
                           "Project could not be created"));
            }

            return(Result <Project> .ActionSuccessful(project));
        }
Ejemplo n.º 12
0
        public Result <Project> CreateProject(CreateProjectOptions options)
        {
            if (options == null)
            {
                return(Result <Project>
                       .CreateFailed(StatusCode.BadRequest, "Null options"));
            }

            var user = userService.SearchUser(new SearchUserOptions()
            {
                UserId = options.UserId
            }).Include(u => u.Projects)
                       .ThenInclude(p => p.Packages)
                       .SingleOrDefault();

            if (user == null)
            {
                return(Result <Project>
                       .CreateFailed(StatusCode.BadRequest, $"The UserId {options.UserId} does not exist"));
            }

            if (IsValidProjectOptions(options))
            {
                Project project = new Project();

                project.Title = options.Title;

                project.Description = options.Description;

                project.Category = options.Category;

                project.FinancialGoal = options.FinancialGoal;

                foreach (var url in options.MediaUrls)
                {
                    if (!string.IsNullOrWhiteSpace(url))
                    {
                        project.Media.Add(new ProjectMedia()
                        {
                            MediaUrl = url
                        });
                    }
                }

                user.Projects.Add(project);
                user.IsProjectCreator = true;

                try
                {
                    if (dbContext.SaveChanges() > 0)
                    {
                        return(Result <Project>
                               .CreateSuccessful(project));
                    }
                    else
                    {
                        return(Result <Project>
                               .CreateFailed(StatusCode.InternalServerError, "Project could not be made"));
                    }
                }
                catch (Exception ex)
                {
                    return(Result <Project>
                           .CreateFailed(StatusCode.InternalServerError, ex.ToString()));
                }
            }

            return(Result <Project>
                   .CreateFailed(StatusCode.InternalServerError, "Project options are not valid"));
        }
        public Result <bool> CreateProject(int?userId, CreateProjectOptions createProjectOptions)
        {
            if (createProjectOptions == null)
            {
                return(Result <bool> .Failed(StatusCode.BadRequest, "Project Options Cannot Be Null"));
            }

            createProjectOptions.MainImageUrl = createProjectOptions.MainImageUrl?.Trim();
            createProjectOptions.Title        = createProjectOptions.Title?.Trim();
            createProjectOptions.Description  = createProjectOptions.Description?.Trim();

            if (userId == null ||
                string.IsNullOrWhiteSpace(createProjectOptions.MainImageUrl) ||
                !Enum.IsDefined(typeof(Category), createProjectOptions.CategoryId) ||
                createProjectOptions.Goal <= 0 ||
                string.IsNullOrWhiteSpace(createProjectOptions.Title) ||
                createProjectOptions.DueTo == null ||
                createProjectOptions.DueTo <= DateTime.Now)
            {
                return(Result <bool> .Failed(StatusCode.BadRequest, "Project Options Not Valid"));
            }

            var user = _userService.GetUserById(userId);

            if (user == null)
            {
                return(Result <bool> .Failed(StatusCode.NotFound, "User Not Found"));
            }

            var project = new Project
            {
                Title        = createProjectOptions.Title,
                Category     = (Category)createProjectOptions.CategoryId,
                Description  = createProjectOptions.Description,
                DueTo        = createProjectOptions.DueTo.Value,
                MainImageUrl = createProjectOptions.MainImageUrl,
                Goal         = createProjectOptions.Goal
            };

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

            var userProject = new UserProjectReward
            {
                IsOwner = true,
                Project = project
            };

            user.UserProjectReward.Add(userProject);

            var rows = 0;

            try
            {
                rows = _context.SaveChanges();
            }
            catch (Exception ex)
            {
                return(Result <bool> .Failed(StatusCode.InternalServerError, ex.Message));
            }

            return(rows <= 0
                ? Result <bool> .Failed(StatusCode.InternalServerError, "Project Could Not Be Created")
                : Result <bool> .Succeed(true));
        }
Ejemplo n.º 14
0
 public Project CreateProject(
     [FromBody] CreateProjectOptions options)
 {
     return(_projectService.CreateProject(options));
 }
Ejemplo n.º 15
0
        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
            });
        }