Exemplo n.º 1
0
        //creates the holidays for a year
        public static void CreateHolidays(int startYear)
        {
            HolidayYear.Clear();

            int endYear = startYear + 5;

            for (int i = startYear; i < endYear; i++)
            {
                foreach (Holiday holiday in Holidays.GetHolidays())
                {
                    if (holiday.Type == Holiday.HolidayType.Fixed_Date)
                    {
                        HolidayYear.AddHoliday(new HolidayYearEvent(new DateTime(startYear, holiday.Date.Month, holiday.Date.Day), holiday, 1));
                    }
                    if (holiday.Type == Holiday.HolidayType.Fixed_Month)
                    {
                        HolidayYearEvent eHoliday = new HolidayYearEvent(new DateTime(startYear, holiday.Month, 1), holiday, DateTime.DaysInMonth(startYear, holiday.Month));
                        HolidayYear.AddHoliday(eHoliday);
                    }
                    if (holiday.Type == Holiday.HolidayType.Fixed_Week)
                    {
                        HolidayYear.AddHoliday(new HolidayYearEvent(MathHelpers.GetFirstDateOfWeek(startYear, holiday.Week), holiday, 7));
                    }
                    if (holiday.Type == Holiday.HolidayType.Non_Fixed_Date)
                    {
                        HolidayYear.AddHoliday(new HolidayYearEvent(MathHelpers.GetNthWeekdayOfMonth(startYear, holiday.Month, holiday.Day, holiday.Week), holiday, 1));
                    }
                }
            }
        }
Exemplo n.º 2
0
        public IHttpActionResult Post(HolidayYear holidayYear)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            holidayYearRepository.Create(holidayYear);

            return(CreatedAtRoute("DefaultAPI", new { id = holidayYear.Id }, holidayYear));
        }
Exemplo n.º 3
0
        public IHttpActionResult GetById(int id)
        {
            HolidayYear holidayYear = holidayYearRepository.ReadById(id);

            if (holidayYear == null)
            {
                return(NotFound());
            }
            return(Ok(holidayYear));
        }
Exemplo n.º 4
0
 public HolidayYear Create(HolidayYear t)
 {
     using (var dbContext = GetContext())
     {
         t.CurrentHolidayYear = dbContext.HolidayYearsSpecs.FirstOrDefault(x => x.Id == t.CurrentHolidayYear.Id);
         t.Employee           = dbContext.Employees.FirstOrDefault(x => x.Id == t.Employee.Id);
         dbContext.HolidayYears.Add(t);
         dbContext.SaveChanges();
         return(t);
     }
 }
Exemplo n.º 5
0
 public HolidayYear Update(HolidayYear t)
 {
     using (var dbContext = GetContext())
     {
         var oldHolidayYear = dbContext.HolidayYears.FirstOrDefault(x => x.Id == t.Id);
         t.CurrentHolidayYear = oldHolidayYear.CurrentHolidayYear;
         t.Months             = oldHolidayYear.Months;
         t.Employee           = oldHolidayYear.Employee;
         dbContext.MarkHolidayYearAsModified(t, oldHolidayYear);
         dbContext.SaveChanges();
         return(t);
     }
 }
        private void lnkTest_Click(object sender, RoutedEventArgs e)
        {
            //PageNavigator.NavigateTo(new PageTest());
            //SerializedLoadSaveHelpers.SaveGame("Dugan");

            SerializedLoadSaveHelpers.LoadGame("Dugan");
            PageNavigator.NavigateTo(new PageAirline(GameObject.GetInstance().HumanAirline));

            HolidayYear.Clear();

            GeneralHelpers.CreateHolidays(GameObject.GetInstance().GameTime.Year);

            Setup.SetupMergers();
        }
Exemplo n.º 7
0
        public IHttpActionResult Put(int id, HolidayYear holidayYear)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //checks that the incoming Id is matching with the ID on the holidayYear to update
            if (id != holidayYear.Id)
            {
                return(BadRequest());
            }
            holidayYearRepository.Update(holidayYear);

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 8
0
        private void btnLoadGame_Click(object sender, RoutedEventArgs e)
        {
            GameObjectWorker.GetInstance().cancel();

            while (GameObjectWorker.GetInstance().isBusy())
            {
            }

            string file = (string)lbSaves.SelectedItem;

            WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "1002"), Translator.GetInstance().GetString("MessageBox", "1002", "message"), WPFMessageBoxButtons.YesNo);

            if (result == WPFMessageBoxResult.Yes)
            {
                if (file != null)
                {
                    SplashControl scLoading = UIHelpers.FindChild <SplashControl>(this, "scLoading");

                    scLoading.Visibility = System.Windows.Visibility.Visible;

                    BackgroundWorker bgWorker = new BackgroundWorker();
                    bgWorker.DoWork += (s, x) =>
                    {
                        SerializedLoadSaveHelpers.LoadGame(file);
                    };
                    bgWorker.RunWorkerCompleted += (s, x) =>
                    {
                        scLoading.Visibility = System.Windows.Visibility.Collapsed;

                        HolidayYear.Clear();

                        GeneralHelpers.CreateHolidays(GameObject.GetInstance().GameTime.Year);

                        Setup.SetupMergers();

                        GameObjectWorker.GetInstance().pause();

                        PageNavigator.NavigateTo(new PageAirline(GameObject.GetInstance().HumanAirline));
                    };
                    bgWorker.RunWorkerAsync();
                }
            }
        }
        private void lnkLoadGame_Click(object sender, RoutedEventArgs e)
        {
            Popup popUpSplash = new Popup();

            popUpSplash.Child           = createSplashWindow("Loading.....");
            popUpSplash.Placement       = PlacementMode.Center;
            popUpSplash.PlacementTarget = PageNavigator.MainWindow;
            popUpSplash.IsOpen          = false;

            GameObjectWorker.GetInstance().cancel();

            while (GameObjectWorker.GetInstance().isBusy())
            {
            }


            WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "1002"), Translator.GetInstance().GetString("MessageBox", "1002", "message"), WPFMessageBoxButtons.YesNo);

            if (result == WPFMessageBoxResult.Yes)
            {
                String file = (String)PopUpLoad.ShowPopUp();

                if (file != null)
                {
                    popUpSplash.IsOpen = true;
                    DoEvents();

                    LoadSaveHelpers.LoadGame(file);

                    PageNavigator.NavigateTo(new PageAirline(GameObject.GetInstance().HumanAirline));

                    HolidayYear.Clear();

                    GeneralHelpers.CreateHolidays(GameObject.GetInstance().GameTime.Year);

                    Setup.SetupMergers();

                    popUpSplash.IsOpen = false;
                }
            }

            GameObjectWorker.GetInstance().start();
        }
Exemplo n.º 10
0
        //returns all the calendaritems for the current date
        private List <CalendarItem> getCalendarItems(DateTime date)
        {
            List <CalendarItem> items = new List <CalendarItem>();

            var airlineCountries = (from a in GameObject.GetInstance().HumanAirline.Airports select a.Profile.Country).Distinct();

            var holidayGroups =
                from h in HolidayYear.GetHolidays(date)
                where (this.ShowAll || airlineCountries.Contains(h.Holiday.Country))
                orderby h.Date
                group h by h.Holiday.Name into gh
                select new { Holiday = gh.First(), Countries = gh };


            foreach (var hg in holidayGroups)
            {
                List <Country> countries = new List <Country>();

                foreach (var n in hg.Countries)
                {
                    if (!countries.Contains(n.Holiday.Country))
                    {
                        countries.Add(n.Holiday.Country);
                    }
                }
                items.Add(new CalendarItem(CalendarItem.ItemType.Holiday, date, hg.Holiday.Holiday.Name, string.Join("\r\n", from c in countries select c.Name)));
            }

            var airliners = GameObject.GetInstance().HumanAirline.Fleet.FindAll((a => a.Airliner.BuiltDate.ToShortDateString() == date.ToShortDateString() && date > GameObject.GetInstance().GameTime));

            if (airliners.Count > 0)
            {
                items.Add(new CalendarItem(CalendarItem.ItemType.Airliner_Order, date, "Delivery of airliners", string.Join("\r\n", from a in airliners select a.Name)));
            }

            foreach (CalendarItem item in CalendarItems.GetCalendarItems(date))
            {
                items.Add(item);
            }

            return(items);
        }
Exemplo n.º 11
0
        private void btnLoadGame_Click(object sender, RoutedEventArgs e)
        {
            String file = (String)PopUpLoad.ShowPopUp();

            if (file != null)
            {
                Setup.SetupGame();

                //LoadSaveHelpers.LoadGame(file);
                SerializedLoadSaveHelpers.LoadGame(file);

                HolidayYear.Clear();

                GeneralHelpers.CreateHolidays(GameObject.GetInstance().GameTime.Year);


                GameObjectWorker.GetInstance().start();

                PageNavigator.NavigateTo(new PageAirline(GameObject.GetInstance().HumanAirline));

                Action action = () =>
                {
                    PassengerHelpers.CreateDestinationDemand();

                    var airports = Airports.GetAllAirports();
                    int count    = airports.Count;

                    //var airports = Airports.GetAirports(a => a != airport && a.Profile.Town != airport.Profile.Town && MathHelpers.GetDistance(a.Profile.Coordinates, airport.Profile.Coordinates) > 50);

                    Parallel.For(0, count - 1, i =>
                    {
                        Parallel.For(i + 1, count, j =>
                        {
                            airports[j].Statics.addDistance(airports[i], MathHelpers.GetDistance(airports[j], airports[i]));
                        });
                    });
                };

                Task.Factory.StartNew(action);
            }
        }
 public void MarkHolidayYearAsModified(HolidayYear newHolidayYear, HolidayYear holidayYearToUpdate)
 {
     Entry(holidayYearToUpdate).CurrentValues.SetValues(newHolidayYear);
 }
Exemplo n.º 13
0
        //simulates the landing of a flight
        private static void SimulateLanding(FleetAirliner airliner)
        {
            DateTime landingTime = airliner.CurrentFlight.FlightTime.Add(MathHelpers.GetFlightTime(airliner.CurrentFlight.Entry.DepartureAirport.Profile.Coordinates.convertToGeoCoordinate(), airliner.CurrentFlight.Entry.Destination.Airport.Profile.Coordinates.convertToGeoCoordinate(), airliner.Airliner.Type));
            double   fdistance   = MathHelpers.GetDistance(airliner.CurrentFlight.getDepartureAirport(), airliner.CurrentFlight.Entry.Destination.Airport);


            TimeSpan flighttime            = landingTime.Subtract(airliner.CurrentFlight.FlightTime);
            double   groundTaxPerPassenger = 5;

            double tax = 0;

            if (airliner.CurrentFlight.Entry.Destination.Airport.Profile.Country != airliner.CurrentFlight.getDepartureAirport().Profile.Country)
            {
                tax = 2 * tax;
            }

            double ticketsIncome = 0;
            double feesIncome    = 0;
            double mealExpenses  = 0;
            double fuelExpenses  = 0;

            if (airliner.CurrentFlight.isPassengerFlight())
            {
                tax          = groundTaxPerPassenger * airliner.CurrentFlight.getTotalPassengers();
                fuelExpenses = FleetAirlinerHelpers.GetFuelExpenses(airliner, fdistance);

                foreach (FlightAirlinerClass fac in airliner.CurrentFlight.Classes)
                {
                    ticketsIncome += fac.Passengers * ((PassengerRoute)airliner.CurrentFlight.Entry.TimeTable.Route).getRouteAirlinerClass(fac.AirlinerClass.Type).FarePrice;
                }

                FeeType employeeDiscountType = FeeTypes.GetType("Employee Discount");
                double  employeesDiscount    = airliner.Airliner.Airline.Fees.getValue(employeeDiscountType);

                double totalDiscount = ticketsIncome * (employeeDiscountType.Percentage / 100.0) * (employeesDiscount / 100.0);
                ticketsIncome = ticketsIncome - totalDiscount;

                foreach (FeeType feeType in FeeTypes.GetTypes(FeeType.eFeeType.Fee))
                {
                    if (GameObject.GetInstance().GameTime.Year >= feeType.FromYear)
                    {
                        foreach (FlightAirlinerClass fac in airliner.CurrentFlight.Classes)
                        {
                            double percent  = 0.10;
                            double maxValue = Convert.ToDouble(feeType.Percentage) * (1 + percent);
                            double minValue = Convert.ToDouble(feeType.Percentage) * (1 - percent);

                            double value = Convert.ToDouble(rnd.Next((int)minValue, (int)maxValue)) / 100;

                            feesIncome += fac.Passengers * value * airliner.Airliner.Airline.Fees.getValue(feeType);
                        }
                    }
                }

                foreach (FlightAirlinerClass fac in airliner.CurrentFlight.Classes)
                {
                    foreach (RouteFacility facility in ((PassengerRoute)airliner.CurrentFlight.Entry.TimeTable.Route).getRouteAirlinerClass(fac.AirlinerClass.Type).getFacilities())
                    {
                        if (facility.EType == RouteFacility.ExpenseType.Fixed)
                        {
                            mealExpenses += fac.Passengers * facility.ExpensePerPassenger;
                        }
                        else
                        {
                            FeeType feeType  = facility.FeeType;
                            double  percent  = 0.10;
                            double  maxValue = Convert.ToDouble(feeType.Percentage) * (1 + percent);
                            double  minValue = Convert.ToDouble(feeType.Percentage) * (1 - percent);

                            double value = Convert.ToDouble(rnd.Next((int)minValue, (int)maxValue)) / 100;

                            mealExpenses -= fac.Passengers * value * airliner.Airliner.Airline.Fees.getValue(feeType);
                        }
                    }
                }
            }
            if (airliner.CurrentFlight.isCargoFlight())
            {
                tax          = groundTaxPerPassenger * airliner.CurrentFlight.Cargo;
                fuelExpenses = FleetAirlinerHelpers.GetFuelExpenses(airliner, fdistance);

                ticketsIncome = airliner.CurrentFlight.Cargo * airliner.CurrentFlight.getCargoPrice();
            }


            Airport dest = airliner.CurrentFlight.Entry.Destination.Airport;
            Airport dept = airliner.CurrentFlight.Entry.DepartureAirport;

            double dist = MathHelpers.GetDistance(dest.Profile.Coordinates.convertToGeoCoordinate(), dept.Profile.Coordinates.convertToGeoCoordinate());

            double expenses = fuelExpenses + dest.getLandingFee() + tax;

            if (double.IsNaN(expenses))
            {
                expenses = 0;
            }

            if (double.IsNaN(ticketsIncome) || ticketsIncome < 0)
            {
                ticketsIncome = 0;
            }

            FleetAirlinerHelpers.SetFlightStats(airliner);

            long airportIncome = Convert.ToInt64(dest.getLandingFee());

            dest.Income += airportIncome;

            Airline airline = airliner.Airliner.Airline;

            var agreements = airline.Codeshares.Where(c => c.Airline1 == airline || c.Type == CodeshareAgreement.CodeshareType.Both_Ways);

            foreach (CodeshareAgreement agreement in agreements)
            {
                var tAirline = agreement.Airline1 == airline ? agreement.Airline2 : agreement.Airline1;

                double agreementIncome = ticketsIncome * (CodeshareAgreement.TicketSalePercent / 100);

                AirlineHelpers.AddAirlineInvoice(tAirline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Tickets, agreementIncome);
            }

            AirlineHelpers.AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Flight_Expenses, -expenses);
            AirlineHelpers.AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Tickets, ticketsIncome);
            AirlineHelpers.AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.OnFlight_Income, -mealExpenses);
            AirlineHelpers.AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Fees, feesIncome);

            airliner.CurrentFlight.Entry.TimeTable.Route.addRouteInvoice(new Invoice(GameObject.GetInstance().GameTime, Invoice.InvoiceType.Flight_Expenses, -expenses));
            airliner.CurrentFlight.Entry.TimeTable.Route.addRouteInvoice(new Invoice(GameObject.GetInstance().GameTime, Invoice.InvoiceType.Tickets, ticketsIncome));
            airliner.CurrentFlight.Entry.TimeTable.Route.addRouteInvoice(new Invoice(GameObject.GetInstance().GameTime, Invoice.InvoiceType.OnFlight_Income, -mealExpenses));
            airliner.CurrentFlight.Entry.TimeTable.Route.addRouteInvoice(new Invoice(GameObject.GetInstance().GameTime, Invoice.InvoiceType.Fees, feesIncome));

            double wages = 0;

            if (airliner.CurrentFlight.isPassengerFlight())
            {
                int cabinCrew = ((AirlinerPassengerType)airliner.Airliner.Type).CabinCrew;

                wages = cabinCrew * flighttime.TotalHours * airliner.Airliner.Airline.Fees.getValue(FeeTypes.GetType("Cabin Wage"));// +(airliner.CurrentFlight.Entry.TimeTable.Route.getTotalCabinCrew() * airliner.Airliner.Airline.Fees.getValue(FeeTypes.GetType("Cabin kilometer rate")) * fdistance) + (airliner.Airliner.Type.CockpitCrew * airliner.Airliner.Airline.Fees.getValue(FeeTypes.GetType("Cockpit kilometer rate")) * fdistance);
                //wages
                AirlineHelpers.AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.Wages, -wages);

                HolidayYearEvent holiday = HolidayYear.GetHoliday(airline.Profile.Country, GameObject.GetInstance().GameTime);

                if (holiday != null && (holiday.Holiday.Travel == Holiday.TravelType.Both || holiday.Holiday.Travel == Holiday.TravelType.Normal))
                {
                    wages = wages * 1.50;
                }

                airliner.CurrentFlight.Entry.TimeTable.Route.addRouteInvoice(new Invoice(GameObject.GetInstance().GameTime, Invoice.InvoiceType.Wages, -wages));

                CreatePassengersHappiness(airliner);
            }


            airliner.Statistics.addStatisticsValue(GameObject.GetInstance().GameTime.Year, StatisticsTypes.GetStatisticsType("Airliner_Income"), ticketsIncome - expenses - mealExpenses + feesIncome - wages);

            airliner.Airliner.Flown += fdistance;

            if (airliner.CurrentFlight.isPassengerFlight())
            {
                foreach (Cooperation cooperation in airliner.CurrentFlight.Entry.Destination.Airport.Cooperations.Where(c => c.Airline == airline))
                {
                    double incomePerPax = MathHelpers.GetRandomDoubleNumber(cooperation.Type.IncomePerPax * 0.9, cooperation.Type.IncomePerPax * 1.1);

                    double incomeFromCooperation = Convert.ToDouble(airliner.CurrentFlight.getTotalPassengers()) * incomePerPax;

                    AirlineHelpers.AddAirlineInvoice(airline, GameObject.GetInstance().GameTime, Invoice.InvoiceType.OnFlight_Income, incomeFromCooperation);
                }
            }



            if (airliner.Airliner.Airline.IsHuman && Settings.GetInstance().MailsOnLandings)
            {
                GameObject.GetInstance().NewsBox.addNews(new News(News.NewsType.Flight_News, GameObject.GetInstance().GameTime, string.Format("{0} landed", airliner.Name), string.Format("Your airliner [LI airliner={0}] has landed in [LI airport={1}], {2} with {3} passengers.\nThe airliner flow from [LI airport={4}], {5}", new object[] { airliner.Airliner.TailNumber, dest.Profile.IATACode, dest.Profile.Country.Name, airliner.CurrentFlight.getTotalPassengers(), dept.Profile.IATACode, dept.Profile.Country.Name })));
            }

            if (airliner.CurrentFlight is StopoverFlight && !((StopoverFlight)airliner.CurrentFlight).IsLastTrip)
            {
                SimulateFlight(airliner.CurrentFlight.Entry);
            }
            else
            {
                airliner.CurrentFlight = null;
            }
        }
        protected override void Seed(ApplicationDbContext context)
        {
            if (!context.Roles.Any())
            {
                var roleStore   = new RoleStore <IdentityRole>(context);
                var roleManager = new RoleManager <IdentityRole>(roleStore);

                var role1 = new IdentityRole()
                {
                    Name = "Medarbejder"
                };
                var role2 = new IdentityRole()
                {
                    Name = "Afdelingsleder"
                };
                var role3 = new IdentityRole
                {
                    Name = "Administrator"
                };
                var role4 = new IdentityRole()
                {
                    Name = "CEO"
                };

                roleManager.Create(role1);
                roleManager.Create(role2);
                roleManager.Create(role3);
                roleManager.Create(role4);
            }

            if (!context.Users.Any())
            {
                var userStore   = new UserStore <ApplicationUser>(context);
                var userManager = new ApplicationUserManager(userStore);

                var user = new ApplicationUser
                {
                    Email    = "*****@*****.**",
                    UserName = "******"
                };
                userManager.Create(user, "!Administrator1");
                userManager.AddToRole(user.Id, "Administrator");
                //var user1 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user1, "123456");
                //userManager.AddToRole(user1.Id, "CEO");
                //var user2 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user2, "123456");
                //userManager.AddToRole(user2.Id, "Afdelingsleder");
                //var user3 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user3, "123456");
                //userManager.AddToRole(user3.Id, "Afdelingsleder");
                //var user4 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user4, "123456");
                //userManager.AddToRole(user4.Id, "Afdelingsleder");
                //var user5 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user5, "123456");
                //userManager.AddToRole(user5.Id, "Medarbejder");
                //var user6 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user6, "123456");
                //userManager.AddToRole(user6.Id, "Medarbejder");
                //var user7 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user7, "123456");
                //userManager.AddToRole(user7.Id, "Medarbejder");
                //var user8 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user8, "123456");
                //userManager.AddToRole(user8.Id, "Medarbejder");
                //var user9 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user9, "123456");
                //userManager.AddToRole(user9.Id, "Medarbejder");
                //var user10 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user10, "123456");
                //userManager.AddToRole(user10.Id, "Medarbejder");
                //var user11 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user11, "123456");
                //userManager.AddToRole(user11.Id, "Medarbejder");
                //var user12 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user12, "123456");
                //userManager.AddToRole(user12.Id, "Medarbejder");
                //var user13 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user13, "123456");
                //userManager.AddToRole(user13.Id, "Medarbejder");
                //var user14 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user14, "123456");
                //userManager.AddToRole(user14.Id, "Medarbejder");
                //var user15 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user15, "123456");
                //userManager.AddToRole(user15.Id, "Medarbejder");
                //var user16 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user16, "123456");
                //userManager.AddToRole(user16.Id, "Medarbejder");
                //var user17 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user17, "123456");
                //userManager.AddToRole(user17.Id, "Medarbejder");
                //var user18 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user18, "123456");
                //userManager.AddToRole(user18.Id, "Medarbejder");
                //var user19 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user19, "123456");
                //userManager.AddToRole(user19.Id, "Medarbejder");
                //var user20 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user20, "123456");
                //userManager.AddToRole(user20.Id, "Medarbejder");
                //var user21 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user21, "123456");
                //userManager.AddToRole(user21.Id, "Medarbejder");
                //var user22 = new ApplicationUser
                //{
                //    Email = "*****@*****.**",
                //    UserName = "******"
                //};
                //userManager.Create(user22, "123456");
                //userManager.AddToRole(user22.Id, "Medarbejder");
            }

            Department fælles = new Department()
            {
                Id = 1, Name = "Fælles", Employees = new List <Employee>()
            };
            Department erhvervs = new Department()
            {
                Id = 2, Name = "Erhverv", Employees = new List <Employee>()
            };
            Department markerting = new Department()
            {
                Id = 3, Name = "Marketing", Employees = new List <Employee>()
            };
            Department turisme = new Department()
            {
                Id = 4, Name = "Turisme", Employees = new List <Employee>()
            };

            Status sygedag = new Status()
            {
                Id = 1, StatusCode = "S", StatusName = "Sygedag"
            };
            Status halvSygedag = new Status()
            {
                Id = 2, StatusCode = "HS", StatusName = "Halv Sygedag"
            };
            Status feriedag = new Status()
            {
                Id = 3, StatusCode = "F", StatusName = "Feriedag"
            };
            Status halvFeriedag = new Status()
            {
                Id = 4, StatusCode = "HF", StatusName = "Halv Feriedag"
            };
            Status ferieFridag = new Status()
            {
                Id = 5, StatusCode = "FF", StatusName = "Feriefridag"
            };
            Status halvFerieFridag = new Status()
            {
                Id = 6, StatusCode = "HFF", StatusName = "Halv Feriefridag"
            };
            Status kursus = new Status()
            {
                Id = 7, StatusCode = "K", StatusName = "Kursus"
            };
            Status barsel = new Status()
            {
                Id = 8, StatusCode = "B", StatusName = "Barsel"
            };
            Status barnsFørsteSygedag = new Status()
            {
                Id = 9, StatusCode = "BS", StatusName = "Barn 1. sygedag"
            };
            Status andetFravær = new Status()
            {
                Id = 10, StatusCode = "AF", StatusName = "Andet fravær"
            };
            Status afspadsering = new Status()
            {
                Id = 11, StatusCode = "A", StatusName = "Afspadsering"
            };
            Status halvAfspadsering = new Status()
            {
                Id = 12, StatusCode = "HA", StatusName = "Halv Afspadsering"
            };
            Status seniordag = new Status()
            {
                Id = 13, StatusCode = "SN", StatusName = "Seniordag"
            };

            Employee admin = new Employee()
            {
                FirstName    = "Admin",
                LastName     = "Admin",
                UserName     = "******",
                Email        = "*****@*****.**",
                EmployeeRole = Role.Administrator,
                HolidayYears = new List <HolidayYear>(),
                Password     = "******"
            };

            //Employee chief1 = new Employee()
            //{
            //    FirstName = "Tom",
            //    LastName = "L. Nielsen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.CEO,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee chief2 = new Employee()
            //{
            //    FirstName = "Birgit",
            //    LastName = "B. Jensen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Afdelingsleder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee chief3 = new Employee()
            //{
            //    FirstName = "Karsten",
            //    LastName = "Rieder",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Afdelingsleder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee chief4 = new Employee()
            //{
            //    FirstName = "Jane",
            //    LastName = "M. Søndergaard",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Afdelingsleder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee = new Employee()
            //{
            //    FirstName = "Noah",
            //    LastName = "Bock",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),

            //};
            //Employee employee1 = new Employee()
            //{
            //    FirstName = "Niels",
            //    LastName = "Bock",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),

            //};
            //Employee employee2 = new Employee()
            //{
            //    FirstName = "Søs",
            //    LastName = "Josefsen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee3 = new Employee()
            //{
            //    FirstName = "Mikael",
            //    LastName = "Simonsen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),

            //};
            //Employee employee4 = new Employee()
            //{
            //    FirstName = "Gitte",
            //    LastName = "Sydbøge",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee5 = new Employee()
            //{
            //    FirstName = "Peter",
            //    LastName = "Hegelund",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),

            //};
            //Employee employee6 = new Employee()
            //{
            //    FirstName = "Gert",
            //    LastName = "Laustsen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),

            //};
            //Employee employee7 = new Employee()
            //{
            //    FirstName = "Lasse",
            //    LastName = "Jensen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee8 = new Employee()
            //{
            //    FirstName = "Uffe",
            //    LastName = "Lundgaard",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee9 = new Employee()
            //{
            //    FirstName = "Randi",
            //    LastName = "Høxbro",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee10 = new Employee()
            //{
            //    FirstName = "Lianna",
            //    LastName = "L. Chirstensen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee11 = new Employee()
            //{
            //    FirstName = "Susanne",
            //    LastName = "P. Sørensen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee12 = new Employee()
            //{
            //    FirstName = "Katrine",
            //    LastName = "Jung",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee13 = new Employee()
            //{
            //    FirstName = "Else",
            //    LastName = "F. Nielsen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee14 = new Employee()
            //{
            //    FirstName = "Marie",
            //    LastName = "warming",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee15 = new Employee()
            //{
            //    FirstName = "Annette",
            //    LastName = "Posselt",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee16 = new Employee()
            //{
            //    FirstName = "Poul",
            //    LastName = "Therkelsen",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};
            //Employee employee17 = new Employee()
            //{
            //    FirstName = "Ragnhild",
            //    LastName = "Kallehauge",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    Password = "******",
            //    EmployeeRole = Role.Medarbejder,
            //    HolidayYears = new List<HolidayYear>(),
            //};

            admin.Department = fælles;
            //chief1.Department = fælles;
            //chief2.Department = markerting;
            //chief3.Department = erhvervs;
            //chief4.Department = turisme;

            //employee.Department = fælles;
            //employee1.Department = fælles;
            //employee2.Department = fælles;
            //employee3.Department = fælles;
            //employee10.Department = fælles;

            //employee7.Department = markerting;

            //employee4.Department = erhvervs;
            //employee5.Department = erhvervs;
            //employee6.Department = erhvervs;
            //employee8.Department = erhvervs;
            //employee9.Department = erhvervs;

            //employee11.Department = turisme;
            //employee12.Department = turisme;
            //employee13.Department = turisme;
            //employee14.Department = turisme;
            //employee15.Department = turisme;
            //employee16.Department = turisme;
            //employee17.Department = turisme;

            List <Employee> employees = new List <Employee>();

            employees.Add(admin);
            //employees.Add(chief1);
            //employees.Add(chief2);
            //employees.Add(chief3);
            //employees.Add(chief4);
            //employees.Add(employee);
            //employees.Add(employee1);
            //employees.Add(employee2);
            //employees.Add(employee3);
            //employees.Add(employee4);
            //employees.Add(employee5);
            //employees.Add(employee6);
            //employees.Add(employee7);
            //employees.Add(employee8);
            //employees.Add(employee9);
            //employees.Add(employee10);
            //employees.Add(employee11);
            //employees.Add(employee12);
            //employees.Add(employee13);
            //employees.Add(employee14);
            //employees.Add(employee15);
            //employees.Add(employee16);
            //employees.Add(employee17);

            HolidayYearSpec currentHolidayYear = new HolidayYearSpec()
            {
                Name           = "2018 - 2019",
                StartDate      = new DateTime(2018, 5, 1),
                EndDate        = new DateTime(2019, 4, 30),
                HolidayYears   = new List <HolidayYear>(),
                PublicHolidays = new List <PublicHoliday>()
            };

            foreach (var emp in employees)
            {
                List <Month> months = new List <Month>();
                Month        januar = new Month()
                {
                    MonthDate          = new DateTime(2019, 1, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month februar = new Month()
                {
                    MonthDate          = new DateTime(2019, 2, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month marts = new Month()
                {
                    MonthDate          = new DateTime(2019, 3, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month april = new Month()
                {
                    MonthDate          = new DateTime(2019, 4, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month maj = new Month()
                {
                    MonthDate          = new DateTime(2018, 5, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month juni = new Month()
                {
                    MonthDate          = new DateTime(2018, 6, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month juli = new Month()
                {
                    MonthDate          = new DateTime(2018, 7, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month august = new Month()
                {
                    MonthDate          = new DateTime(2018, 8, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month september = new Month()
                {
                    MonthDate          = new DateTime(2018, 9, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month oktober = new Month()
                {
                    MonthDate          = new DateTime(2018, 10, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month november = new Month()
                {
                    MonthDate          = new DateTime(2018, 11, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                Month december = new Month()
                {
                    MonthDate          = new DateTime(2018, 12, 1, 10, 0, 0), AbsencesInMonth = new List <Absence>(),
                    HolidayYear        = new HolidayYear(),
                    IsLockedByEmployee = false, IsLockedByChief = false, IsLockedByCEO = false, IsLockedByAdmin = false
                };
                months.Add(januar);
                months.Add(februar);
                months.Add(marts);
                months.Add(april);
                months.Add(maj);
                months.Add(juni);
                months.Add(juli);
                months.Add(august);
                months.Add(september);
                months.Add(oktober);
                months.Add(november);
                months.Add(december);
                List <HolidayYear> holidayYears = new List <HolidayYear>();
                HolidayYear        holidayYear  = new HolidayYear()
                {
                    CurrentHolidayYear      = new HolidayYearSpec(),
                    Months                  = months,
                    Employee                = emp,
                    IsClosed                = false,
                    HolidayAvailable        = 25,
                    HolidayFreedayAvailable = 5,
                    HolidaysUsed            = 0,
                    HolidayFreedaysUsed     = 0,
                    HolidayTransfered       = 5
                };
                foreach (var month in months)
                {
                    month.HolidayYear = holidayYear;
                }
                holidayYears.Add(holidayYear);
                currentHolidayYear.HolidayYears.Add(holidayYear);
                holidayYear.CurrentHolidayYear = currentHolidayYear;
                emp.HolidayYears = holidayYears;
                emp.WorkfreeDays = new List <WorkfreeDay>();
                context.Employees.Add(emp);
            }

            context.HolidayYearsSpecs.Add(currentHolidayYear);
            context.Statuses.Add(sygedag);
            context.Statuses.Add(halvSygedag);
            context.Statuses.Add(feriedag);
            context.Statuses.Add(halvFeriedag);
            context.Statuses.Add(ferieFridag);
            context.Statuses.Add(halvFerieFridag);
            context.Statuses.Add(kursus);
            context.Statuses.Add(barsel);
            context.Statuses.Add(barnsFørsteSygedag);
            context.Statuses.Add(andetFravær);
            context.Statuses.Add(afspadsering);
            context.Statuses.Add(halvAfspadsering);
            context.Statuses.Add(seniordag);

            base.Seed(context);
        }