Exemplo n.º 1
0
        public LocationWithTimings LocationAdd(LocationWithTimings newLocation)
        {
            //var addedLocationTiming = ds.Timings.Add(mapper.Map<Timing>(newLocation.Timings));
            var addedLocation = ds.Locations.Add(mapper.Map <Location>(newLocation));

            addedLocation.Timing = new Timing
            {
                //timing addition
                MondayOpeningTime    = newLocation.TimingMondayOpeningTime,
                MondayClosingTime    = newLocation.TimingMondayClosingTime,
                TuesdayOpeningTime   = newLocation.TimingTuesdayOpeningTime,
                TuesdayClosingTime   = newLocation.TimingTuesdayClosingTime,
                WednesdayOpeningTime = newLocation.TimingWednesdayOpeningTime,
                WednesdayClosingTime = newLocation.TimingWednesdayClosingTime,
                ThursdayOpeningTime  = newLocation.TimingThursdayOpeningTime,
                ThursdayClosingTime  = newLocation.TimingThursdayClosingTime,
                FridayOpeningTime    = newLocation.TimingFridayOpeningTime,
                FridayClosingTime    = newLocation.TimingFridayClosingTime,
                SaturdayOpeningTime  = newLocation.TimingSaturdayOpeningTime,
                SaturdayClosingTime  = newLocation.TimingSaturdayClosingTime,
                SundayOpeningTime    = newLocation.TimingSundayOpeningTime,
                SundayClosingTime    = newLocation.TimingSundayClosingTime
                                       //timing addition end
            };
            var latlng = LatLongCoordsDoubles(newLocation);

            addedLocation.Latitude  = latlng[0];
            addedLocation.Longitude = latlng[1];
            ds.Timings.Add(addedLocation.Timing);
            ds.SaveChanges();
            return(mapper.Map <LocationWithTimings>(addedLocation));
        }
Exemplo n.º 2
0
        /*
         * Returns an arry of double of size 2 i.e. 0 and 1.
         * Each array index contains the data for the coordinates of a locaiton provided a variable
         * of type LocationWithTimings from which it will extract the necessary data to gives geo locaiton
         * coordinates
         *
         * 0 - Latitude
         * 1 - Longitude
         */
        public double[] LatLongCoordsDoubles(LocationWithTimings data)
        {
            double[] coords = new double[2];

            var addressFull = data.Address + "," + data.City + "," + data.PostalCode;
            //var address = "123 something st, somewhere";
            var address         = addressFull;
            var requestUri      = $"http://maps.googleapis.com/maps/api/geocode/xml?address={Uri.EscapeDataString(address)}&sensor=false";
            var request         = WebRequest.Create(requestUri);
            var response        = request.GetResponse();
            var xdoc            = XDocument.Load(response.GetResponseStream());
            var result          = xdoc.Element("GeocodeResponse")?.Element("result");
            var locationElement = result?.Element("geometry")?.Element("location");
            var lat             = locationElement?.Element("lat");
            var lng             = locationElement?.Element("lng");

            if (lat != null)
            {
                coords[0] = Convert.ToDouble(lat.Value);
            }
            if (lng != null)
            {
                coords[1] = Convert.ToDouble(lng.Value);
            }
            return(coords);
        }
Exemplo n.º 3
0
        public ActionResult Create(LocationWithTimings newLocation)
        {
            if (!ModelState.IsValid)
            {
                return(View(newLocation));
            }
            var addedLocation = m.LocationAdd(newLocation);

            if (addedLocation == null)
            {
                return(View(newLocation));
            }
            return(RedirectToAction("Details", new { id = addedLocation.LocationId }));
        }
Exemplo n.º 4
0
        public LocationWithTimings LocationEditExisting(LocationWithTimings newItem)
        {
            var data = ds.Locations.Include("Timing").SingleOrDefault(i => i.LocationId == newItem.LocationId);
            var time = ds.Timings.SingleOrDefault(i => i.TimingId == newItem.LocationId);

            if (data == null)
            {
                return(null);
            }
            if (time == null)
            {
                return(null);
            }
            var newTiming = new Timing
            {
                //timing addition
                TimingId             = newItem.LocationId,
                MondayOpeningTime    = newItem.TimingMondayOpeningTime,
                MondayClosingTime    = newItem.TimingMondayClosingTime,
                TuesdayOpeningTime   = newItem.TimingTuesdayOpeningTime,
                TuesdayClosingTime   = newItem.TimingTuesdayClosingTime,
                WednesdayOpeningTime = newItem.TimingWednesdayOpeningTime,
                WednesdayClosingTime = newItem.TimingWednesdayClosingTime,
                ThursdayOpeningTime  = newItem.TimingThursdayOpeningTime,
                ThursdayClosingTime  = newItem.TimingThursdayClosingTime,
                FridayOpeningTime    = newItem.TimingFridayOpeningTime,
                FridayClosingTime    = newItem.TimingFridayClosingTime,
                SaturdayOpeningTime  = newItem.TimingSaturdayOpeningTime,
                SaturdayClosingTime  = newItem.TimingSaturdayClosingTime,
                SundayOpeningTime    = newItem.TimingSundayOpeningTime,
                SundayClosingTime    = newItem.TimingSundayClosingTime


                                       //timing addition end
            };

            var latlng = LatLongCoordsDoubles(newItem);

            newItem.Latitude  = latlng[0];
            newItem.Longitude = latlng[1];
            ds.Entry(time).CurrentValues.SetValues(newTiming);
            ds.Entry(data).CurrentValues.SetValues(newItem);
            //ds.Entry(data.Timing).CurrentValues.SetValues(newItem);
            ds.SaveChanges();
            return(mapper.Map <LocationWithTimings>(data));
        }
Exemplo n.º 5
0
        public ActionResult Edit(int?id, LocationWithTimings newItem)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Edit", new { id = newItem.LocationId }));
            }
            if (id.GetValueOrDefault() != newItem.LocationId)
            {
                return(RedirectToAction("Index"));
            }
            var editedItem = m.LocationEditExisting(newItem);

            if (editedItem == null)
            {
                return(RedirectToAction("Edit", new { id = newItem.LocationId }));
            }
            return(RedirectToAction("Index"));
        }