예제 #1
0
        public AdministrationResponse getAdministrationInfo()
        {
            OADbContext ctx = new OADbContext();

            var byer = ctx.by.ToList();

            var pakkedimensioner = ctx.pakkeDimintioner;

            var result = new AdministrationResponse()
            {
                PakkeDimensioner = new List<PakkeDimensionDto>(),
                Lufthavne = new List<LufthavnDTO>()
            };

            foreach (var pakkedimension in pakkedimensioner)
            {
                var dimension = new PakkeDimensionDto();
                var pakkerpriser = pakkedimension.pakkePris.Select(x => new PakkePriserDto()
                {
                    FromWeight = x.FromWeight,
                    ToWeight = x.ToWeight,
                    Price = x.Price,
                    Id = x.Id
                }).ToList();

                dimension.PakkePriser = pakkerpriser;
                dimension.DimensionNavn = pakkedimension.Name;

                result.PakkeDimensioner.Add(dimension);
            }

            result.Lufthavne = Mapper.Map<List<@by>, List<LufthavnDTO>>(byer);

            result.FragtTypeMultipliers = ctx.packetType.Select(x => new FragtTypeMultiplierDTO()
            {
                Multiplier = x.multiplier,
                Name = x.PacketType1

            }).ToList();
            ctx.Dispose();
            return result;
        }
예제 #2
0
        public void SaveAdministrationInfo([FromBody] AdministrationResponse administration)
        {
            OADbContext ctx = new OADbContext();

            //pakkepriser foreach find id
            foreach (var pakkeDimension in administration.PakkeDimensioner)
            {
                foreach (var pakkePris in pakkeDimension.PakkePriser)
                {
                    var dbPakkePris = ctx.pakkePris.FirstOrDefault(x => x.Id == pakkePris.Id);
                    if (dbPakkePris != null)
                    {
                        dbPakkePris.Price = pakkePris.Price;
                        ctx.pakkePris.AddOrUpdate(dbPakkePris);
                    }
                }
            }
            ctx.SaveChanges();

            //byer foreach id sæt aktiv/deaktiv
            foreach (var lufthavn in administration.Lufthavne)
            {
                var dbLufthavn = ctx.by.FirstOrDefault(x => x.Id == lufthavn.Id);
                if (dbLufthavn != null) {
                    dbLufthavn.Active = lufthavn.IsActive;
                    ctx.by.AddOrUpdate(dbLufthavn);
                }
            }

            ctx.SaveChanges();

            //pakketyper where name == administration.pakketype
            foreach (var pakkeType in administration.FragtTypeMultipliers)
            {
                var dbPakkeType = ctx.packetType.FirstOrDefault(x => x.PacketType1 == pakkeType.Name);
                if (dbPakkeType != null) {
                    dbPakkeType.multiplier = pakkeType.Multiplier;
                    ctx.packetType.AddOrUpdate();
                }
            }

            ctx.SaveChanges();
            ctx.Dispose();
        }
예제 #3
0
        public RuteResponseDTO GetRoutes([FromBody] RuteRequest ruteRequest)
        {
            OADbContext ctx = new OADbContext();
            var rute = new CalculationManager.Node();
            var billigsteRute = new CalculationManager.Node();

            var dimension = ctx.pakkeDimintioner.SingleOrDefault(x => x.Name == ruteRequest.DimensionsType);

            var fraBy = ctx.by.SingleOrDefault(x => x.Name == ruteRequest.FraBy);
            var tilBy = ctx.by.SingleOrDefault(x => x.Name == ruteRequest.TilBy);

            long hurtigsteRuteId = 0;
            long billigsteRuteId = 0;

            List<long> Id = new List<long>();
            if (ruteRequest.FragtTyper.Length > 0)
            {
                Id.AddRange(ruteRequest.FragtTyper.Select(typer => Convert.ToInt64(typer)));
            }
            else
            {
                Id.Add(Int32.MaxValue);
            }

            if (fraBy != null && tilBy != null)
            {
                var routeManager = ManagerFactory.GetRouteManager();
                var routeManagerResult = routeManager.CalculateRouteTime(fraBy, tilBy, dimension.Height, dimension.Depth, dimension.Width, ruteRequest.Vaegt, Id);

                rute = routeManagerResult.Item1;
                hurtigsteRuteId = routeManagerResult.Item2;

                var billigsteRouteManagerResult = routeManager.CalculateRouteWeight(fraBy, tilBy, dimension.Height,
                    dimension.Depth, dimension.Width, ruteRequest.Vaegt, Id);

                billigsteRute = billigsteRouteManagerResult.Item1;
                billigsteRuteId = billigsteRouteManagerResult.Item2;
            }

            ctx.Dispose();

            //map rute til ruteresponsedto
            var billigsteRuteDto = Mapper.Map<RuteDTO>(billigsteRute);
            var ruteDto = Mapper.Map<RuteDTO>(rute);

            foreach (var ruteTrin in ruteDto.RuteTrin)
            {
                ruteDto.TotalTid += ruteTrin.Tid;
                ruteDto.TotalPris += ruteTrin.Pris;
                ruteDto.RuteType = "Hurtigste Rute";
                ruteDto.RuteId = hurtigsteRuteId;
            }

            foreach (var ruteTrin in billigsteRuteDto.RuteTrin)
            {
                billigsteRuteDto.TotalTid += ruteTrin.Tid;
                billigsteRuteDto.TotalPris += ruteTrin.Pris;
                billigsteRuteDto.RuteType = "Billigste Rute";
                billigsteRuteDto.RuteId = billigsteRuteId;
            }

            RuteResponseDTO result = new RuteResponseDTO()
            {
                Ruter = new List<RuteDTO>() { ruteDto, billigsteRuteDto },
                RuteRequest = ruteRequest
            };

            return result;
        }
예제 #4
0
        public UserLoginResponse Login([FromBody] UserLoginDTO bruger)
        {
            OADbContext ctx = new OADbContext();

            var user = ctx.users.SingleOrDefault(x => x.BrugerNavn == bruger.Username && x.password == bruger.Password);

            if (user != null)
            {
                UserLoginResponse loginSuccess = new UserLoginResponse()
                {
                    IsAdmin = user.IsAdmin,
                    Result = true
                };

                return loginSuccess;
            }

            UserLoginResponse loginFailed = new UserLoginResponse()
            {
                Result = false,
                IsAdmin = false
            };
            ctx.Dispose();
            return loginFailed;
        }