public async Task <IActionResult> CreateProjectAsync([FromBody] CreateProjectInfo project)
        {
            Result <Project> createdProject = await _projectService.CreateProjectAsync(project.ProjectName, project.OwnerId);

            _projectService.UpdateOwner(createdProject.Payload.ProjectId);

            return(Ok(createdProject.Payload));
        }
        public IActionResult UpdateProject([FromBody] CreateProjectInfo model)
        {
            var project = _db.Project.FirstOrDefault(p => p.Id == model.id);

            _db.Project.Update(FillingFields(model));
            _db.SaveChanges();
            return(new ObjectResult(project));
        }
        public Visa FactoryVisa(CreateProjectInfo project, int id)
        {
            var visa = new Visa
            {
                Date       = project.payment.expirationDate,
                NumberCard = project.payment.cardNumber,
                OwnerName  = project.payment.owner,
                Pin        = project.payment.cvCode,
                ProjectId  = id,
                UserId     = project.userId
            };

            return(visa);
        }
        public void UpdateGoals([FromBody] UpdateGoals model)
        {
            var proj = _db.Project.FirstOrDefault(p => p.Id == model.projectId);

            proj.requiredSum = 0;
            var buf = new CreateProjectInfo
            {
                finansalGoals = model.goals
            };
            var steps = _db.Step.ToList().FindAll(p => p.projectId == model.projectId);

            foreach (var step in steps)
            {
                _db.Step.Remove(step);
            }
            _db.SaveChanges();
            AddTargets(buf, proj);
        }
 public void AddTargets(CreateProjectInfo project, Project proj)
 {
     foreach (var goals in project.finansalGoals)
     {
         var target = new Target();
         if (_db.Project.ToList().Count != 0)
         {
             target.projectId = _db.Project.ToList().Last().Id + 1;
         }
         target.cost        = goals.cost;
         target.title       = goals.title;
         target.IsCompleted = false;
         proj.Targets.Add(target);
         proj.requiredSum += target.cost;
         _db.Step.Update(target);
     }
     _db.Project.Update(proj);
     _db.SaveChanges();
 }
        public Project FillingFields(CreateProjectInfo project)
        {
            var proj = new Project();

            proj.Title        = project.title;
            proj.Description  = project.description;
            proj.DateCreated  = localDate.ToString();
            proj.DateEnd      = project.completionDate.Split("T").First();
            proj.currentSum   = 0;
            proj.image        = project.image;
            proj.CreateUserId = project.userId;
            proj.Sponsors     = 0;
            elapsed           = Convert.ToDateTime(proj.DateEnd).Subtract(Convert.ToDateTime(proj.DateCreated));
            proj.leftOver     = elapsed.Days;
            proj.content      = project.content;

            var tag       = new Tag();
            int helpIdTag = 0;
            int j         = 1;

            for (int i = 0; i <= project.tags.Count - 1; i++)
            {
                tag = _db.Tag.FirstOrDefault(p => p.Name == project.tags[i]);
                if (tag == null)
                {
                    var bufTag = new Tag();
                    bufTag.Name = project.tags[i];
                    if (_db.Tag.ToList().Count != 0)
                    {
                        helpIdTag = _db.Tag.ToList().Last().Id + j;
                    }
                    else
                    {
                        helpIdTag = j;
                    }
                    _db.Tag.Add(bufTag);
                    tag = bufTag;
                    j++;
                }
                else
                {
                    helpIdTag = tag.Id;
                    _db.Tag.Update(tag);
                }
                int idProj = 0;
                if (_db.Project.ToList().Count != 0)
                {
                    idProj = _db.Project.ToList().Last().Id + 1;
                }
                else
                {
                    idProj = 0;
                }
                var bufProjectTag = new ProjectTag
                {
                    Tag       = tag,
                    ProjectId = idProj,
                    IdTags    = helpIdTag
                };
                proj.Tags.Add(bufProjectTag);
                _db.InstructionTag.Add(bufProjectTag);
            }

            AddTargets(project, proj);

            proj.currentSum = 0;
            proj.progress   = 0;

            int id = 1;

            if (_db.Project.ToList().Count != 0)
            {
                id = _db.Project.ToList().Last().Id + 1;
            }

            AddVisa(project, id);
            return(proj);
        }
 public IActionResult CreateProject([FromBody] CreateProjectInfo model)
 {
     _db.Project.Add(FillingFields(model));
     _db.SaveChanges();
     return(new ObjectResult(_db.Project.Last().Id));
 }
 public void AddVisa(CreateProjectInfo project, int id)
 {
     _db.Visa.Add(FactoryVisa(project, id));
 }