示例#1
0
            public async Task <Kullanici> Handle(Query request, CancellationToken cancellationToken)
            {
                var kullanici = await _userManager.FindByNameAsync(_kullaniciErisimi.GetCurrentUserName());

                return(new Kullanici
                {
                    DisplayName = kullanici.DisplayName,
                    Token = _jwtGenerator.CreateToken(kullanici),
                    UserName = kullanici.UserName,
                    Image = kullanici.Resimler.FirstOrDefault(x => x.AnaResimMi)?.Url
                });
            }
示例#2
0
            public async Task <Resim> Handle(Command request, CancellationToken cancellationToken)
            {
                var photoUploadResult = _resimErisimi.ResimEkle(request.File);

                var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                var resim = new Resim
                {
                    Id  = photoUploadResult.PublicId,
                    Url = photoUploadResult.Url
                };

                if (!kullanici.Resimler.Any(x => x.AnaResimMi))
                {
                    resim.AnaResimMi = true;
                }

                kullanici.Resimler.Add(resim);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(resim);
                }

                throw new Exception("Resim kaydedilirken sorun oluştu.");
            }
示例#3
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var etkinlik = await _context.Etkinlikler.FindAsync(request.Id);

                if (etkinlik == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { Etkinlik = "Etkinlik bulunamadı" });
                }

                var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                var katilimci = await _context.KullaniciEtkinlikler.SingleOrDefaultAsync(x => x.EtkinlikId == etkinlik.Id && x.AppKullaniciId == kullanici.Id);

                if (katilimci != null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Katilimci = "Bu etkinliğe zaten katılınmış" });
                }

                katilimci = new KullaniciEtkinlik
                {
                    Etkinlik      = etkinlik,
                    AppKullanici  = kullanici,
                    YayinlandiMi  = false,
                    KatilmaTarihi = DateTime.Now
                };

                _context.KullaniciEtkinlikler.Add(katilimci);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Etkinlik kaydedilirken sorun oluştu.");
            }
示例#4
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var etkinlik = new Etkinlik
                {
                    Id       = request.Id,
                    Baslik   = request.Baslik,
                    Aciklama = request.Aciklama,
                    Kategori = request.Kategori,
                    Tarih    = request.Tarih,
                    Sehir    = request.Sehir,
                    Mekan    = request.Mekan
                };

                _context.Etkinlikler.Add(etkinlik);

                var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                var katilimci = new KullaniciEtkinlik
                {
                    AppKullanici  = kullanici,
                    Etkinlik      = etkinlik,
                    YayinlandiMi  = true,
                    KatilmaTarihi = DateTime.Now
                };

                _context.KullaniciEtkinlikler.Add(katilimci);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Etkinlik kaydedilirken sorun oluştu.");
            }
示例#5
0
        public bool Resolve(KullaniciEtkinlik source, KatilimciDto destination, bool destMember, ResolutionContext context)
        {
            var etkinKullanici = _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName()).Result;

            if (etkinKullanici.TakipEdilenler.Any(x => x.HedefId == source.AppKullaniciId))
            {
                return(true);
            }

            return(false);
        }
示例#6
0
            public async Task<Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var gozlemci = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                var hedef = await _context.Users.SingleOrDefaultAsync(x => x.UserName == request.KullaniciAdi);

                if (hedef == null)
                    throw new RestException(HttpStatusCode.NotFound, new { Kullanici = "Bulunamadı" });

                var takipEdilen = await _context.TakipEdilenler.SingleOrDefaultAsync(x => x.GozlemciId == gozlemci.Id && x.HedefId == hedef.Id);

                if (takipEdilen != null)
                    throw new RestException(HttpStatusCode.BadRequest, new { Kullanici = "Bu kullanıcıyı zaten takip ediyorsunuz." });

                if (takipEdilen == null)
                {
                    takipEdilen = new KullaniciTakibi
                    {
                        Gozlemci = gozlemci,
                        Hedef = hedef
                    };

                    _context.TakipEdilenler.Add(takipEdilen);
                }

                var success = await _context.SaveChangesAsync() > 0;

                if (success) return Unit.Value;

                throw new Exception("Etkinlik kaydedilirken sorun oluştu.");
            }
示例#7
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                var resim = kullanici.Resimler.FirstOrDefault(x => x.Id == request.Id);

                if (resim == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { Resim = "Bulunamadı" });
                }

                var currentMain = kullanici.Resimler.FirstOrDefault(x => x.AnaResimMi);

                currentMain.AnaResimMi = false;
                resim.AnaResimMi       = true;

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Etkinlik kaydedilirken sorun oluştu.");
            }
示例#8
0
            public async Task <EtkinlikEnvelope> Handle(Query request, CancellationToken cancellationToken)
            {
                var queryable = _context.Etkinlikler
                                .Where(x => x.Tarih >= request.StartDate)
                                .OrderBy(x => x.Tarih)
                                .AsQueryable();

                if (request.IsGoing && !request.IsHost)
                {
                    queryable = queryable.Where(x => x.KullaniciEtkinlikler.Any(a => a.AppKullanici.UserName == _kullaniciErisimi.GetCurrentUserName()));
                }

                if (request.IsHost && !request.IsGoing)
                {
                    queryable = queryable.Where(x => x.KullaniciEtkinlikler.Any(a => a.AppKullanici.UserName == _kullaniciErisimi.GetCurrentUserName() && a.YayinlandiMi));
                }

                var etkinlikler = await queryable
                                  .Skip(request.Offset ?? 0)
                                  .Take(request.Limit ?? 3).ToListAsync();

                return(new EtkinlikEnvelope
                {
                    Etkinlikler = _mapper.Map <List <Etkinlik>, List <EtkinlikDto> >(etkinlikler),
                    EtkinlikSayisi = queryable.Count()
                });
            }
示例#9
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                kullanici.DisplayName = request.DisplayName ?? kullanici.DisplayName;
                kullanici.Bio         = request.Bio ?? kullanici.Bio;

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Profil kaydedilirken hata oluştu.");
            }
示例#10
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

                var resim = kullanici.Resimler.FirstOrDefault(x => x.Id == request.Id);

                if (resim == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { Resim = "Bulunamadı" });
                }

                if (resim.AnaResimMi)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Resim = "Ana resmi silemezsiniz." });
                }

                var result = _resimErisimi.ResimSil(resim.Id);

                if (result == null)
                {
                    throw new Exception("Resim silinirken sorun oluştu.");
                }

                kullanici.Resimler.Remove(resim);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Etkinlik kaydedilirken sorun oluştu.");
            }
示例#11
0
        public async Task <Profil> ReadProfil(string kullaniciAdi)
        {
            var kullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

            if (kullanici == null)
            {
                throw new RestException(HttpStatusCode.NotFound, new { Kullanici = "Bulunamadı" });
            }

            var etkinKullanici = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _kullaniciErisimi.GetCurrentUserName());

            var profil = new Profil
            {
                DisplayName       = kullanici.DisplayName,
                UserName          = kullanici.UserName,
                Image             = kullanici.Resimler.FirstOrDefault(x => x.AnaResimMi)?.Url,
                Resimler          = kullanici.Resimler,
                Bio               = kullanici.Bio,
                TakipciSayisi     = kullanici.Takipciler.Count(),
                TakipEdilenSayisi = kullanici.TakipEdilenler.Count()
            };

            if (etkinKullanici.TakipEdilenler.Any(x => x.HedefId == kullanici.Id))
            {
                profil.TakipEdildiMi = true;
            }

            return(profil);
        }