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)); }
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()); }
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); }
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); }
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 })); }
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, }) })); }
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); }
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)); }
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)); }
public Project CreateProject( [FromBody] CreateProjectOptions options) { return(_projectService.CreateProject(options)); }
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 }); }