public string Get(LocationBindingModel bindingModel)
        {
            var serializer       = new JavaScriptSerializer();
            var serializedResult = serializer.Serialize(LocationProvider.GetUsersWithinRange(0.003, (bindingModel.lattitude, bindingModel.longtitude)));
            var result           = LocationProvider.GetUsersWithinRange(0.003, (bindingModel.lattitude, bindingModel.longtitude));

            return(serializedResult);
        }
Exemple #2
0
        public static Location ToEntity(this LocationBindingModel model, Location original = null)
        {
            var isUpdate = original != null;
            var entity   = isUpdate
                ? model.Map(original)                           // update
                : model.Map <LocationBindingModel, Location>(); //insert

            return(entity);
        }
        public async Task TestPostCreateLocationAsync_InvalidModel()
        {
            controller.ModelState.AddModelError("key", "error");
            var model = new LocationBindingModel
            {
                LocationTypeId = LocationType.Building.Id,
            };
            var response = await controller.PostCreateLocationAsync(model);

            Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult));
        }
        public LocationViewModel InsertLocation(LocationBindingModel model)
        {
            var location = model.ToEntity();

            location = _locationRepository.Add(location);
            CurrentUnitOfWork.Commit();

            location = _locationRepository.FindOne(location.Id);
            var viewModel = location.ToViewModel();

            return(viewModel);
        }
        public async Task TestPostCreateLocationAsync()
        {
            var model = new LocationBindingModel
            {
                LocationTypeId = LocationType.Building.Id,
            };

            userProvider.Setup(x => x.GetBusinessUser(It.IsAny <IWebApiUser>())).Returns(new User(1));
            serviceMock.Setup(x => x.CreateAsync(It.IsAny <AdditionalLocation>())).ReturnsAsync(new Location());
            serviceMock.Setup(x => x.GetLocationByIdAsync(It.IsAny <int>())).ReturnsAsync(new LocationDTO());
            var response = await controller.PostCreateLocationAsync(model);

            Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <LocationDTO>));
            serviceMock.Verify(x => x.CreateAsync(It.IsAny <AdditionalLocation>()), Times.Once());
            serviceMock.Verify(x => x.SaveChangesAsync(), Times.Once());
            userProvider.Verify(x => x.GetCurrentUser(), Times.Once());
            userProvider.Verify(x => x.GetBusinessUser(It.IsAny <IWebApiUser>()), Times.Once());
        }
        public async Task <IHttpActionResult> PostCreateLocationAsync([FromBody] LocationBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var currentUser  = this.userProvider.GetCurrentUser();
                var businessUser = this.userProvider.GetBusinessUser(currentUser);
                var location     = await this.locationService.CreateAsync(model.ToAdditionalLocation(businessUser));

                await this.locationService.SaveChangesAsync();

                var dto = await this.locationService.GetLocationByIdAsync(location.LocationId);

                return(Ok(dto));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public async Task <IHttpActionResult> UpdateLocation(LocationBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            currentUser.Latitude  = model.Latitude;
            currentUser.Longitude = model.Longitude;

            var result = await UserManager.UpdateAsync(currentUser);

            if (!result.Succeeded)
            {
                return(InternalServerError(new Exception("User location update not succesfull")));
            }

            return(Ok());
        }
Exemple #8
0
        public async Task <IHttpActionResult> UpdateLocation(LocationBindingModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                using (SkriblContext ctx = new SkriblContext())
                {
                    var deliverer = ctx.DeliveryMen.FirstOrDefault(x => x.Id == model.Id);
                    if (deliverer != null)
                    {
                        deliverer.Longitude = model.Longitude;
                        deliverer.Latitude  = model.Latitude;
                        deliverer.Location  = Utility.CreatePoint(model.Latitude, model.Longitude);
                        ctx.SaveChanges();

                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = "Invalid deliverer Id"
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public void TestToAdditionalLocation()
        {
            var userId         = 1;
            var user           = new User(userId);
            var latitude       = 1.0f;
            var longitude      = 2.0f;
            var cityId         = 3;
            var divisionId     = 4;
            var countryId      = 5;
            var regionId       = 6;
            var name           = "name";
            var locationTypeId = LocationType.Building.Id;
            var model          = new LocationBindingModel
            {
                CityId         = cityId,
                CountryId      = countryId,
                DivisionId     = divisionId,
                RegionId       = regionId,
                Latitude       = latitude,
                Name           = name,
                LocationTypeId = locationTypeId,
                Longitude      = longitude
            };

            var instance = model.ToAdditionalLocation(user);

            Assert.AreEqual(latitude, instance.Latitude);
            Assert.AreEqual(longitude, instance.Longitude);
            Assert.AreEqual(cityId, instance.CityId);
            Assert.AreEqual(divisionId, instance.DivisionId);
            Assert.AreEqual(regionId, instance.RegionId);
            Assert.AreEqual(countryId, instance.CountryId);
            Assert.AreEqual(name, instance.LocationName);
            Assert.AreEqual(locationTypeId, instance.LocationTypeId);
            Assert.IsTrue(Object.ReferenceEquals(user, instance.Audit.User));
        }
Exemple #10
0
 public DataActionResponse InsertLocation(LocationBindingModel model)
 {
     return(_locationService.InsertLocation(model)
            .CreateDataActionResponseSuccess());
 }
 public void Post(LocationBindingModel bindingModel)
 {
     LocationProvider.AddLocation(RequestContext.Principal.Identity.Name, (bindingModel.lattitude, bindingModel.longtitude));
 }