public async Task <IActionResult> Edit(Guid id, [Bind("GeolocalizacaoId,Pais,Estado,Sigla,Cidade,CodigoIBGE")] Geolocalizacao geolocalizacao)
        {
            if (id != geolocalizacao.GeolocalizacaoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(geolocalizacao);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GeolocalizacaoExists(geolocalizacao.GeolocalizacaoId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(geolocalizacao));
        }
        public async Task <IActionResult> Create([Bind("GeolocalizacaoId,Pais,Estado,Sigla,Cidade,CodigoIBGE")] Geolocalizacao geolocalizacao)
        {
            if (ModelState.IsValid)
            {
                geolocalizacao.GeolocalizacaoId = Guid.NewGuid();
                _context.Add(geolocalizacao);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(geolocalizacao));
        }
示例#3
0
        private async Task CheckIfHasRelationalAndAdd(Geolocalizacao position)
        {
            var location = new LocationEntry()
            {
                Latitude  = position.Location.Coordinates.Latitude,
                Longitude = position.Location.Coordinates.Longitude,
                DateTime  = position.Date,
                UserId    = position.IdUser
            };

            var near = await FindNearWorker(location);

            if (!near.Any())
            {
                return;
            }

            var relationalFriends = await _timelineService.GetRelationalFriends(position.IdUser, near.ToList());

            if (relationalFriends.isOk && relationalFriends.data != null && relationalFriends.data.idAmigos.Count > 0)
            {
                var friends = relationalFriends.data.idAmigos.Select(requestFriend => new Friend()
                {
                    idAmigo = requestFriend
                }).ToList();
                var request = new RequestMatchFriend {
                    IdAmigos = friends
                };

                var timeLineFriends = await _timelineService.GetShowTimeLine(position.IdUser, request);

                if (timeLineFriends.isOk && timeLineFriends.data != null &&
                    timeLineFriends.data.Count > 0)
                {
                    var friendsGuids = timeLineFriends.data.Select(friend => friend.idAmigo).ToList();

                    foreach (var friend in friendsGuids)
                    {
                        await _timelineService.AddToTimeline(position.IdUser, friend);

                        await _timelineService.AddToTimeline(friend, position.IdUser);
                    }
                }
            }
        }
示例#4
0
        public async Task Add(LocationEntry pGeo)
        {
            var invalidGuid = new Guid("00000000-0000-0000-0000-000000000000");

            if (pGeo.UserId == invalidGuid)
            {
                return;
            }

            var geo2 = new Geolocalizacao
            {
                Location = new GeoJsonPoint <GeoJson2DGeographicCoordinates>(
                    new GeoJson2DGeographicCoordinates(pGeo.Longitude, pGeo.Latitude)
                    ),
                IdUser      = pGeo.UserId,
                Date        = ConvertToUtc(pGeo.DateTime),
                CreatedDate = DateTime.UtcNow,
            };
            await _mongoContext.GetContext().InsertOneAsync(geo2);

            await CheckIfHasRelationalAndAdd(geo2);
        }
示例#5
0
 /// <summary>
 /// Método para Deletar uma Geolocalizacao
 /// </summary>
 /// <param name="e">Geolocalizacao</param>
 /// <returns>Verdadeiro ou falso para a inserção</returns>
 public async Task <bool> DeletarGeolocalizacao(Geolocalizacao e)
 {
     return(await this._servico.DeletarGeolocalizacao(e));
 }
示例#6
0
 /// <summary>
 /// Realiza a chamada ao repositório para inserção da  Geolocalizacao
 /// </summary>
 /// <param name="e">Objeto Empresa para nova inserção</param>
 /// <returns>Verdadeiro ou falso para a inserção</returns>
 public async Task <bool> InserirGeolocalizacao(Geolocalizacao e)
 {
     return(await this._servico.InserirGeolocalizacao(e));
 }
示例#7
0
 public void Post([FromBody] Geolocalizacao pGeo)
 {
     mongoContext.dbGeolocalizacao.InsertOne(pGeo);
 }