Example #1
0
        public int CreatePetitionProgressEditModel(Models.Petition.PetitionProgressEditModel model)
        {
            using (var context = ApplicationDbContext.Create())
            {
                var progress = new PetitionProgress
                {
                    Description      = model.Description,
                    ParliamentID     = model.ParliamentID,
                    RepresentativeID = model.SelectedRepresentativeID,
                    Title            = model.Title,
                    NumberOfVotes    = model.NumberOfVotes
                };

                if (model.ImageToDo != null)
                {
                    var fileService = new FileService();
                    progress.ImageToDoRelativePath = fileService.UploadFile(new List <string> {
                        "PetitionProgress"
                    }, model.ImageToDo.FileName, model.ImageToDo.InputStream);
                }

                if (model.ImageDone != null)
                {
                    var fileService = new FileService();
                    progress.ImageDoneRelativePath = fileService.UploadFile(new List <string> {
                        "PetitionProgress"
                    }, model.ImageDone.FileName, model.ImageDone.InputStream);
                }

                context.PetitionProgresses.Add(progress);
                context.SaveChanges();

                return(progress.PetitionProgressID);
            }
        }
Example #2
0
        public Models.Petition.PetitionProgressEditModel InitializePetitionProgressEditModel(int parliamentId)
        {
            var result = new Models.Petition.PetitionProgressEditModel()
            {
                ParliamentID = parliamentId
            };

            using (var context = ApplicationDbContext.Create())
            {
                PopulateRepresentativesListForPetitionProgresEditModel(parliamentId, result, context);
            }

            return(result);
        }
Example #3
0
        public Models.Petition.PetitionProgressEditModel UpdatePetitionProgressEditModel(Models.Petition.PetitionProgressEditModel model)
        {
            using (var context = ApplicationDbContext.Create())
            {
                var progress = context.PetitionProgresses.SingleOrDefault(x => x.PetitionProgressID == model.PetitionProgresID);

                if (progress == null)
                {
                    return(null);
                }

                progress.Description      = model.Description;
                progress.ParliamentID     = model.ParliamentID;
                progress.RepresentativeID = model.SelectedRepresentativeID;
                progress.Title            = model.Title;
                progress.NumberOfVotes    = model.NumberOfVotes;


                if (model.ImageToDo != null)
                {
                    var fileService = new FileService();
                    progress.ImageToDoRelativePath = fileService.UploadFile(new List <string> {
                        "PetitionProgress"
                    }, model.ImageToDo.FileName, model.ImageToDo.InputStream);
                }

                if (model.ImageDone != null)
                {
                    var fileService = new FileService();
                    progress.ImageDoneRelativePath = fileService.UploadFile(new List <string> {
                        "PetitionProgress"
                    }, model.ImageDone.FileName, model.ImageDone.InputStream);
                }

                context.SaveChanges();
            }

            return(GetPetitionProgressEditModel(model.PetitionProgresID));
        }
Example #4
0
        private static void PopulateRepresentativesListForPetitionProgresEditModel(int parliamentId, Models.Petition.PetitionProgressEditModel model, ApplicationDbContext context, int?selectedRepresentative = null)
        {
            var configuredRepresentativeIds = context.PetitionProgresses
                                              .Where(x => x.ParliamentID == parliamentId)
                                              .Select(x => x.RepresentativeID)
                                              .ToList();

            if (selectedRepresentative.HasValue)
            {
                configuredRepresentativeIds.Remove(selectedRepresentative.Value);
            }

            model.Representatives = context.Representatives
                                    .Where(x => x.ParliamentHouse.ParliamentID == parliamentId)
                                    .Where(x => !configuredRepresentativeIds.Contains(x.RepresentativeID))
                                    .ToList()
                                    .Select(x => new Models.Petition.RepresentativeModel
            {
                ID   = x.RepresentativeID,
                Name = x.DisplayName
            })
                                    .OrderBy(x => x.Name)
                                    .ToList();

            model.ParliamentName = context.Parliaments.Single(x => x.ParliamentID == parliamentId).Name;
        }