示例#1
0
 public static List<forsendelsesRute> HentForsendelsesRute(long Id)
 {
     using (var context = new OADbContext())
     {
         return context.forsendelsesRute.ToList().FindAll(p => p.forsendelse.Id == Id);
     }
 }
示例#2
0
 public static @by HentBy(long Id)
 {
     using (var context = new OADbContext())
     {
         return context.by.FirstOrDefault(p => p.CityId == Id);
     }
 }
示例#3
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;
        }
示例#4
0
        public ActionResult Index()
        {
            var ctx = new OADbContext();

            ViewBag.Title = "Home Page";

            return View();
        }
示例#5
0
 public static IList<by> HentDeaktiveredeByer()
 {
     using (var context = new OADbContext())
     {
         return (from byen in context.@by
                 where !byen.Active
                 select byen).ToList();
     }
 }
示例#6
0
 public static void DeaktiverBy(by by)
 {
     by.Active = false;
     using (var context = new OADbContext())
     {
          context.by.AddOrUpdate(by);
          context.SaveChanges();
     }
 }
示例#7
0
 public static void GemForsendelse(long forsendelsesId)
 {
     using (var context = new OADbContext())
     {
         var forsend = context.forsendelse.FirstOrDefault(p => p.Id == forsendelsesId);
         forsend.Saved = true;
         context.forsendelse.AddOrUpdate(forsend);
         context.SaveChanges();
     }
 }
示例#8
0
        public void GemSoegning([FromBody] GemSoegningRequest request)
        {
            OADbContext ctx = new OADbContext();

            var forsendelse = ctx.forsendelse.SingleOrDefault(x => x.Id == request.forsendelseId);
            if(forsendelse != null)
                forsendelse.Saved = true;

            ctx.forsendelse.AddOrUpdate(forsendelse);

            ctx.SaveChanges();
        }
示例#9
0
        public List<RuteDTO> GetGemtSoegninger()
        {
            OADbContext ctx = new OADbContext();

            var ruter = ctx.forsendelse.Where(x => x.Saved).Select(x => (int)x.Id).ToList();
            var dtos = new List<RuteDTO>();
            var routeConverter = new GetRouteFromDatabase();

            foreach (var i in ruter)
            {
                dtos.Add(routeConverter.Convert(i));
            }

            return dtos;
        }
示例#10
0
        public AdministrationResponse getAdministrationInfo()
        {
            OADbContext ctx = new OADbContext();

            var byer = ctx.by.ToList();

            var pakkedimensioner = ctx.pakkeDimintioner.ToList();

            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;
        }
示例#11
0
        public List<FragtTypeDTO> GetFragttyper()
        {
            OADbContext ctx = new OADbContext();

            var typer = ctx.packetType.ToList();

            var pakkeTyper = Mapper.Map<List<packetType>, List<FragtTypeDTO>>(typer);

            return pakkeTyper;
        }
示例#12
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();
        }
示例#13
0
        public GetCitiesContract GetRoutes()
        {
            OADbContext ctx = new OADbContext();

            var cities = ctx.by.ToList();

            var cityDtos = Mapper.Map<List<@by>, List<CityDTO>>(cities);

            var result = new GetCitiesContract
            {
                Cities = cityDtos
            };

            return result;
        }
示例#14
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;
        }
示例#15
0
 public static List<pakkeDimintioner> HentPakkeDimensioner()
 {
     using (var context = new OADbContext())
     {
         return context.pakkeDimintioner.ToList();
     }
 }
示例#16
0
 public static List<forsendelse> HentGemteForsendelser()
 {
     using (var context = new OADbContext())
     {
         return context.forsendelse.ToList().FindAll(p => p.Saved);
     }
 }
示例#17
0
 public static List<pakkePris> HentPakkePriser()
 {
     using (var context = new OADbContext())
     {
         return context.pakkePris.ToList();
     }
 }
示例#18
0
        public bool OpretBruger([FromBody] OpretBrugerDTO bruger)
        {
            OADbContext ctx = new OADbContext();

            users user = new users()
            {
                BrugerNavn = bruger.Username,
                password = bruger.Password,
                IsAdmin = bruger.IsAdmin
            };

            ctx.users.Add(user);
            ctx.SaveChanges();

            return true;
        }
示例#19
0
        public static float HentPakkeType(List<long> Id)
        {
            float multiplier = 1;
            if (Id.First() == Int32.MaxValue)
                return multiplier;

            using (var context = new OADbContext())
            {
                var res = context.packetType.ToList().FindAll(p => Id.Contains(p.Id));
                res.ForEach(r => multiplier = multiplier * r.multiplier);
                return multiplier;
            }
        }
示例#20
0
 public static long OpretRute(forsendelse rute)
 {
     using (var context = new OADbContext())
     {
         var id = context.forsendelse.Add(rute);
         context.SaveChanges();
         return id.Id;
     }
 }
示例#21
0
 public static IList<Route> HentRuter(by _by)
 {
     using (var context = new OADbContext())
     {
         var res = (from ruteObjekt in context.rute
             where ruteObjekt.StartCity == _by.CityId
             select ruteObjekt).Select(r => new Route {Rute = r, TransportType = TransportType.Oceanic}).ToList();
         res.ForEach(q => q.Rute.Time = q.Rute.Time*60);
         return res;
     }
 }