예제 #1
0
 private async void InsertAdmin(Admin admin)
 {
     using (var context = new HUBEI_DBContext(new DbContextOptions <HUBEI_DBContext>()))
     {
         context.Add(admin);
         await context.SaveChangesAsync();
     }
 }
예제 #2
0
        /// <summary>
        /// PUTS(UPDATES) a project in the database.
        /// </summary>
        /// <param name="model"></param>
        /// <returns>Projects Main List Backoffice view</returns>
        /// <remarks></remarks>
        public async Task <IActionResult> EditProject(BOProjectViewModel viewModel)
        {
            if (!User.Identity.IsAuthenticated)
            {
                TempData["Got-Error"]     = "true";
                TempData["Login-Message"] = "É necessário iniciar sessão";

                return(RedirectToAction("Index", "Home"));
            }

            if (viewModel.Report != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await viewModel.Report.CopyToAsync(memoryStream);

                    viewModel.Project.Report = memoryStream.ToArray();
                }
            }

            viewModel.Project.ProjectAdvisor = _context.ProjectAdvisor.Where(pa => pa.IdProject == viewModel.Project.IdProject).ToList();

            foreach (var advisor in viewModel.Project.ProjectAdvisor)
            {
                _context.ProjectAdvisor.Remove(advisor);
                await _context.SaveChangesAsync();
            }

            foreach (var mentor in viewModel.Mentors)
            {
                if (mentor.Selected)
                {
                    var advisor = new ProjectAdvisor {
                        IdProject = viewModel.Project.IdProject, IdSchoolMentor = mentor.SchoolMentor.IdSchoolMentor
                    };
                    await _context.ProjectAdvisor.AddAsync(advisor);

                    await _context.SaveChangesAsync();
                }
            }

            viewModel.Project.ProjectAdvisor = new List <ProjectAdvisor>();

            if (viewModel.Attachments != null)
            {
                if (viewModel.Attachments.Count() > 0)
                {
                    viewModel.Project.ProjectDocument = _context.ProjectDocument.Where(pd => pd.IdProject == viewModel.Project.IdProject).ToList();

                    foreach (var document in viewModel.Project.ProjectDocument)
                    {
                        _context.ProjectDocument.Remove(document);
                        await _context.SaveChangesAsync();
                    }

                    foreach (var formFile in viewModel.Attachments)
                    {
                        if (formFile.Length > 0)
                        {
                            using (var memoryStream = new MemoryStream())
                            {
                                await formFile.CopyToAsync(memoryStream);

                                var document = new ProjectDocument
                                {
                                    IdProject = viewModel.Project.IdProject,
                                    Document  = memoryStream.ToArray(),
                                    FileName  = formFile.FileName,
                                    FileSize  = Convert.ToDouble(Convert.ToDecimal(formFile.Length) / 1024m / 1024m)
                                };

                                await _context.ProjectDocument.AddAsync(document);

                                await _context.SaveChangesAsync();
                            }
                        }
                    }


                    viewModel.Project.ProjectDocument = new List <ProjectDocument>();
                }
            }



            _context.Project.Update(viewModel.Project);
            _context.SaveChanges();

            TempData["HasAlert"]     = "true";
            TempData["AlertMessage"] = "Project edited successfully.";

            return(RedirectToAction("Projects", "BackOffice"));
        }