public void ReadProjectFromFile(string fileName)
        { //Create new project
            using (StreamReader r = new StreamReader($@"{fileName}.json"))
            {
                string json = r.ReadToEnd();
                List <ProjectFromFile> projectsFromFile = JsonConvert.DeserializeObject <List <ProjectFromFile> >(json);


                var service = new ProjectCreatorService();
                foreach (ProjectFromFile p in projectsFromFile)
                {
                    var project = new ProjectProfilePage
                    {
                        Title          = p.NameOfProject,
                        Description    = p.Description,
                        Category       = p.Keywords,
                        Goal           = p.Demandedfunds,
                        DateOfCreation = DateTime.Parse(p.DateOfCreation),
                        DeadLine       = DateTime.Parse(p.Deadline),
                    };
                    project.Active = true;
                    service.AddProject(p.Creator, project);
                }
            }
        }
        public Result <bool> AddProject(string email, ProjectProfilePage project)
        {
            var context       = new CrowDoDbContext();
            var projectExists = context.Set <ProjectProfilePage>().Where(p => p.Title == project.Title).Any();

            if (projectExists)
            {
                return(new Result <bool> {
                    ErrorCodeId = 1, ErrorCodeString = "Project already exists", Data = false
                });
            }
            var user = context.Set <User>().Where(c => c.Email == email).SingleOrDefault();

            if (user == null)
            {
                return(new Result <bool> {
                    ErrorCodeId = 2, ErrorCodeString = "Creator does not exist", Data = false
                });
            }
            var categoryExists = context.Set <Category>().Where(c => c.Name == project.Category).SingleOrDefault();;

            if (categoryExists == null)
            {
                var newCategory = new Category
                {
                    Name = project.Category
                };
                newCategory.Projects.Add(project);
                context.Add(newCategory);
            }
            else
            {
                categoryExists.Projects.Add(project);
                context.Update(categoryExists);
            }

            project.Creator = user;
            user.CreatedProjects.Add(project);
            context.Update(user);
            context.Add(project);
            if (context.SaveChanges() < 1)
            {
                return(new Result <bool> {
                    ErrorCodeId = 3, ErrorCodeString = "Not Saved", Data = false
                });
            }

            return(new Result <bool> {
                ErrorCodeId = 0, ErrorCodeString = "Project created", Data = true
            });
        }
        public Result <bool> ProjectCreation(string email, string title, string description, DateTime dateOfCreation,
                                             string category, DateTime deadline, decimal goal)
        {
            var project = new ProjectProfilePage
            {
                Title          = title,
                Description    = description,
                Balance        = 0,
                DateOfCreation = dateOfCreation,
                DeadLine       = deadline,
                Goal           = goal,
                Category       = category
            };

            project.Active = true;

            AddProject(email, project);
            {
                return(new Result <bool> {
                    ErrorCodeId = 0, ErrorCodeString = "Project created", Data = true
                });
            }
        }