private static void SeedForms(this VoteMonitorContext context, string formCode, bool diaspora)
        {
            context.Forms.Add(
                new Form {
                Code = formCode, Description = "Description " + formCode, CurrentVersion = 1, Diaspora = diaspora, Draft = false
            }
                );

            context.SaveChanges();
        }
        private static void SeedOptions(this VoteMonitorContext context)
        {
            if (context.Options.Any())
            {
                return;
            }

            context.Options.AddRange(
                new Option {
                Text = "Da",
            },
                new Option {
                Text = "Nu",
            },
                new Option {
                Text = "Nu stiu",
            },
                new Option {
                Text = "Dark Island",
            },
                new Option {
                Text = "London Pride",
            },
                new Option {
                Text = "Zaganu",
            },
                new Option {
                Text = "Transmisia manualã",
            },
                new Option {
                Text = "Transmisia automatã",
            },
                new Option {
                Text = "Altele (specificaţi)", IsFreeText = true
            },
                new Option {
                Text = "Metrou"
            },
                new Option {
                Text = "Tramvai"
            },
                new Option {
                Text = "Autobuz"
            }
                );

            context.SaveChanges();
        }
        private static void SeedObservers(this VoteMonitorContext context)
        {
            if (context.Observers.Any())
            {
                return;
            }

            context.Observers.Add(
                new Observer()
            {
                Id = 0, FromTeam = false, IdNgo = 1, Phone = "0722222222", Name = "Test", Pin = "1234", MobileDeviceId = Guid.NewGuid().ToString(), DeviceRegisterDate = DateTime.Now
            }
                );

            context.SaveChanges();
        }
        private static void SeedFormSections(this VoteMonitorContext context, string formCode)
        {
            var form = context.Forms.SingleOrDefault(f => f.Code == formCode);

            if (form == null)
            {
                return;
            }

            context.FormSections.AddRange(
                new FormSection {
                Code = formCode + "B", Description = "Despre Bere", IdForm = form.Id
            },
                new FormSection {
                Code = formCode + "C", Description = "Description masini", IdForm = form.Id
            }
                );

            context.SaveChanges();
        }
        private static void SeedNGOs(this VoteMonitorContext context)
        {
            if (context.Ngos.Any())
            {
                return;
            }

            context.Ngos.Add(new Ngo
            {
                Id        = 1,
                Name      = "Code4Romania",
                Organizer = true,
                ShortName = "C4R"
            });
            context.Ngos.Add(new Ngo
            {
                Id        = 2,
                Name      = "Guest NGO",
                Organizer = false,
                ShortName = "GUE"
            });
            context.SaveChanges();
        }
        private static void SeedQuestions(this VoteMonitorContext context, string formCode, bool diaspora)
        {
            var f = context.Forms.FirstOrDefault(ff => ff.Code == formCode);

            if (f == null)
            {
                f = new Form {
                    Code = formCode, Diaspora = diaspora, Draft = false
                };
                context.Forms.Add(f);
                context.SaveChanges();
            }

            var fsB = context.FormSections
                      .FirstOrDefault(ff => ff.IdForm == f.Id && ff.Code == $"{formCode}B");
            var fsC = context.FormSections
                      .FirstOrDefault(ff => ff.IdForm == f.Id && ff.Code == $"{formCode}C");

            if (fsB == null)
            {
                fsB = new FormSection {
                    IdForm = f.Id, Code = $"{formCode}B", Description = $"section B of Form {f.Id}"
                };
                context.FormSections.Add(fsB);
                context.SaveChanges();
            }
            if (fsC == null)
            {
                fsC = new FormSection {
                    IdForm = f.Id, Code = $"{formCode}C", Description = $"section C of Form {f.Id}"
                };
                context.FormSections.Add(fsC);
                context.SaveChanges();
            }
            context.Questions.AddRange(
                // primul formular
                new Question
            {
                IdSection          = fsB.Id, //B
                QuestionType       = QuestionType.SingleOption,
                Text               = $"{f.Id}: Iti place berea? (se alege o singura optiune selectabila)",
                OptionsToQuestions = new List <OptionToQuestion>
                {
                    new OptionToQuestion {
                        IdOption = 1
                    },
                    new OptionToQuestion {
                        IdOption = 2, Flagged = true
                    },
                    new OptionToQuestion {
                        IdOption = 3
                    }
                }
            },
                new Question
            {
                IdSection          = fsB.Id, //B
                QuestionType       = QuestionType.MultipleOption,
                Text               = $"{f.Id}: Ce tipuri de bere iti plac? (se pot alege optiuni multiple)",
                OptionsToQuestions = new List <OptionToQuestion>
                {
                    new OptionToQuestion {
                        IdOption = 4, Flagged = true
                    },
                    new OptionToQuestion {
                        IdOption = 5
                    },
                    new OptionToQuestion {
                        IdOption = 6
                    }
                }
            },
                new Question
            {
                IdSection          = fsC.Id, //C
                QuestionType       = QuestionType.SingleOptionWithText,
                Text               = $"{f.Id}: Ce tip de transmisie are masina ta? (se poate alege O singura optiune selectabila + text pe O singura optiune)",
                OptionsToQuestions = new List <OptionToQuestion>
                {
                    new OptionToQuestion {
                        IdOption = 7, Flagged = true
                    },
                    new OptionToQuestion {
                        IdOption = 8
                    },
                    new OptionToQuestion {
                        IdOption = 9
                    }
                }
            },
                new Question
            {
                IdSection          = fsC.Id, //C
                QuestionType       = QuestionType.MultipleOptionWithText,
                Text               = $"{f.Id}: Ce mijloace de transport folosesti sa ajungi la birou? (se pot alege mai multe optiuni + text pe O singura optiune)",
                OptionsToQuestions = new List <OptionToQuestion>
                {
                    new OptionToQuestion {
                        IdOption = 10, Flagged = true
                    },
                    new OptionToQuestion {
                        IdOption = 11
                    },
                    new OptionToQuestion {
                        IdOption = 12
                    },
                    new OptionToQuestion {
                        IdOption = 9
                    }
                }
            }
                );

            context.SaveChanges();
        }