Exemplo n.º 1
0
        public async Task <ActionResult <GeoMessage> > PostGeoMessage(GeoMessage geoMessage)
        {
            var newGeoMessage = new GeoMessage
            {
                Message   = geoMessage.Message,
                Latitude  = geoMessage.Latitude,
                Longitude = geoMessage.Longitude
            };

            var geoMessageV2DTO = new Models.V1.GeoMessageV1_DTO
            {
                Message   = newGeoMessage.Message,
                Latitude  = newGeoMessage.Latitude,
                Longitude = newGeoMessage.Longitude
            };

            var newGeoMessageV2 = new GeoMessageV2
            {
                Latitude  = geoMessageV2DTO.Latitude,
                Longitude = geoMessageV2DTO.Longitude
            };


            await _context.AddAsync(newGeoMessage);

            await _context.AddAsync(newGeoMessageV2);

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetGeoMessage", new { id = newGeoMessage.ID }, newGeoMessage));
        }
Exemplo n.º 2
0
            public async Task <ProfileLocationModel> Handle(
                Command request,
                CancellationToken cancellationToken
                )
            {
                try
                {
                    Guid UserId = request.UserId;

                    var existingProfileLocation = await _geoDbContext.ProfileLocations
                                                  .AsNoTracking()
                                                  .SingleOrDefaultAsync(profile => profile.UserId == UserId);

                    if (existingProfileLocation == null)
                    {
                        throw new AppException($"The UserId {UserId} doesn't have a Profile Location");
                    }

                    existingProfileLocation.Latitud  = request.Latitud;
                    existingProfileLocation.Longitud = request.Longitud;
                    existingProfileLocation.ZipCode  = request.ZipCode;
                    existingProfileLocation.CityId   = request.CityId;

                    _geoDbContext.ProfileLocations.Update(existingProfileLocation);
                    await _geoDbContext.SaveChangesAsync();

                    return(existingProfileLocation);
                }
                catch (Exception e)
                {
                    throw new AppException(e.Message);
                }
            }
            public async Task <bool> Handle(
                Command request,
                CancellationToken cancellationToken
                )
            {
                try
                {
                    Guid UserId = request.UserId;

                    var existingProfileLocation = await _geoDbContext.ProfileLocations
                                                  .AsNoTracking()
                                                  .SingleOrDefaultAsync(profile => profile.UserId == UserId);

                    if (existingProfileLocation == null)
                    {
                        return(false);
                    }

                    _geoDbContext.ProfileLocations.Remove(existingProfileLocation);
                    await _geoDbContext.SaveChangesAsync();

                    return(true);
                }
                catch (Exception e)
                {
                    throw new AppException(e.Message);
                }
            }
Exemplo n.º 4
0
        public async Task <AuthenticationPayload> RegisterAsync(RegisterUserInput input, [ScopedService] GeoDbContext context)
        {
            var existingUser = context.Users
                               .Where(i => i.Email.ToLower() == input.Email.ToLower())
                               .SingleOrDefault();

            if (existingUser != null)
            {
                return(new AuthenticationPayload(null, "User with this email address already exists"));
            }


            var salt    = HashHelper.GenerateSalt();
            var newUser = new User
            {
                Email = input.Email,
                Salt  = salt,
                Hash  = HashHelper.GenerateHash(salt, input.Password)
            };

            var createdUser = await context.Users.AddAsync(newUser);

            await context.SaveChangesAsync();

            return(GenerateAuthenticationResultForUser(newUser));
        }
        public async Task <ActionResult <GeoMessageV2_DTO> > PostGeoMessage(GeoMessageV2_Input_DTO message)
        {
            var user = await _context.MyUsers.FindAsync(_userManager.GetUserId(User));

            var newMessage = new GeoMessageV2()
            {
                Title     = message.Title,
                Body      = message.Body,
                Author    = $"{user.FirstName} {user.LastName}",
                Longitude = message.Longitude,
                Latitude  = message.Latitude
            };
            await _context.AddAsync(newMessage);

            await _context.SaveChangesAsync();

            var messageDTO = new GeoMessageV2_DTO
            {
                Message = new Messages
                {
                    Body   = newMessage.Body,
                    Title  = newMessage.Title,
                    Author = newMessage.Author
                },
                Longitude = newMessage.Longitude,
                Latitude  = newMessage.Latitude
            };

            return(CreatedAtAction(nameof(GetGeoMessage), new { id = newMessage.Id }, messageDTO));
        }
Exemplo n.º 6
0
        public async Task <ActionResult> SaveAutoNumberAsync(Country obj)
        {
            await _context.Countries.AddAsync(obj);

            await _context.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 7
0
        public async Task <UpdateCityPayload> UpdateCityAsync(UpdateCityInput input, [ScopedService] GeoDbContext context)
        {
            var city = await context.Cities.FindAsync(input.Id);

            city.Name = input.Name;

            await context.SaveChangesAsync();

            return(new UpdateCityPayload(city));
        }
            public async Task <ActionResult <Models.V1.GeoMessageDTO> > PostGeoMessage(Models.V1.GeoMessageDTO geoPost)
            {
                var geo   = geoPost.GeoMessageModel();
                var geoV2 = V1GeoMessageDTOToV2(geoPost);


                _context.GeoMessage.Add(geoV2);
                await _context.SaveChangesAsync();

                return(Ok());
            }
Exemplo n.º 9
0
        public async Task <UpdateCountryPayload> UpdateCountryAsync(UpdateCountryInput input, [ScopedService] GeoDbContext context)
        {
            var country = await context.Countries.FindAsync(input.Id);

            country.Name       = input.Name;
            country.Alpha2Code = input.Alpha2Code;
            country.Alpha3Code = input.Alpha3Code;

            await context.SaveChangesAsync();

            return(new UpdateCountryPayload(country));
        }
Exemplo n.º 10
0
        public async Task <AddCityPayload> AddCityAsync(AddCityInput input, [ScopedService] GeoDbContext context)
        {
            var city = new Domain.City
            {
                Name      = input.Name,
                CountryId = input.CountryId
            };

            context.Cities.Add(city);
            await context.SaveChangesAsync();

            return(new AddCityPayload(city));
        }
Exemplo n.º 11
0
        public async Task <ResponseMessagePayload> DeleteCountryAsync(DeleteCountryInput input, [ScopedService] GeoDbContext context)
        {
            var country = await context.Countries.FindAsync(input.Id);

            if (country == null)
            {
                return(new ResponseMessagePayload("Country not found"));
            }

            context.Countries.Remove(country);
            await context.SaveChangesAsync();

            return(new ResponseMessagePayload("Country deleted"));
        }
            public async Task <ActionResult <ReturnNoAuthor> > PostGeoMessage(ReturnNoAuthor geoPost)
            {
                var userName = User.Identity.Name;

                _context.GeoMessage.Add(new Models.V2.GeoMessage {
                    Author    = userName,
                    Title     = geoPost.Message.Title,      // fyll body med message och tvärtom
                    Body      = geoPost.Message.Body,
                    Latitude  = geoPost.Latitude,
                    Longitude = geoPost.Longitude
                });
                await _context.SaveChangesAsync();

                return(Ok());
            }
Exemplo n.º 13
0
        public async Task <AddCountryPayload> AddCountryAsync(
            AddCountryInput input,
            [ScopedService] GeoDbContext context,
            [Service] ITopicEventSender eventSender,
            CancellationToken cancellationToken
            )
        {
            var country = new Domain.Country
            {
                Name       = input.Name,
                Alpha2Code = input.Alpha2Code
            };

            context.Countries.Add(country);
            await context.SaveChangesAsync(cancellationToken);

            await eventSender.SendAsync(nameof(CountrySubscriptions.OnCountryAdded), country, cancellationToken);

            return(new AddCountryPayload(country));
        }
Exemplo n.º 14
0
            public async Task <ProfileLocationModel> Handle(
                Command request,
                CancellationToken cancellationToken
                )
            {
                try
                {
                    Guid UserId = request.UserId;

                    var existingProfileLocation = await _geoDbContext.ProfileLocations
                                                  .AsNoTracking()
                                                  .SingleOrDefaultAsync(profile => profile.UserId == UserId);

                    if (existingProfileLocation != null)
                    {
                        throw new AppException($"The UserId {UserId} already has a Profile Location");
                    }

                    ProfileLocationModel profileLocation = new ProfileLocationModel
                    {
                        UserId   = UserId,
                        Latitud  = request.Latitud,
                        Longitud = request.Longitud,
                        ZipCode  = request.ZipCode,
                        CityId   = request.CityId
                    };

                    _geoDbContext.ProfileLocations.Add(profileLocation);
                    await _geoDbContext.SaveChangesAsync();

                    return(profileLocation);
                }
                catch (Exception e)
                {
                    throw new AppException(e.Message);
                }
            }