Пример #1
0
        public async Task <IActionResult> PostUser(User user)
        {
            _context.Users.Add(user);
            await _context.SaveChangesAsync();

            //return Ok();
            return(CreatedAtAction("GetUser", new { id = user.Id }, user));
        }
Пример #2
0
        public async Task <IActionResult> ApprovePhoto(int photoId)
        {
            var photo = await _context.Photos
                        .IgnoreQueryFilters()
                        .FirstOrDefaultAsync(p => p.Id == photoId);

            photo.IsApproved = true;

            await _context.SaveChangesAsync();

            return(Ok());
        }
Пример #3
0
        public async Task <IActionResult> Charge(PaymentChargeDTO paymentChargeDTO)
        {
            if (paymentChargeDTO.UserId != User.FindFirst(JwtRegisteredClaimNames.Jti).Value)
            {
                return(Unauthorized());
            }

            var customers = new CustomerService();
            var charges   = new ChargeService();

            // var options = new TokenCreateOptions
            // {
            // Card = new CreditCardOptions
            //     {
            //         // Number = "4242424242424242",
            //         // ExpYear = 2020,
            //         // ExpMonth = 3,
            //         // Cvc = "123"
            //     }
            // };

            // var service = new TokenService();
            // Token stripeToken = service.Create(options);

            var customer = customers.Create(new CustomerCreateOptions
            {
                //SourceToken = stripeToken
                Source = paymentChargeDTO.StripeToken
            });

            var charge = charges.Create(new ChargeCreateOptions
            {
                Amount      = 5000,
                Description = "إشتراك مدى الحياة",
                Currency    = "usd",
                Customer    = customer.Id
                              //CustomerId = customer.Id
            });

            var payment = new Payment
            {
                PaymentDate = DateTime.Now,
                Amount      = charge.Amount / 100,
                UserId      = User.FindFirst(JwtRegisteredClaimNames.Jti).Value,
                ReceiptUrl  = charge.ReceiptUrl,
                Description = charge.Description,
                Currency    = charge.Currency,
                IsPaid      = charge.Paid
            };

            _context.Payments.Add(payment);
            if (await _context.SaveChangesAsync() > 0)
            {
                return(Ok(charge.Paid));
            }
            else
            {
                return(BadRequest());
            }
        }
Пример #4
0
        public async Task <IActionResult> PostPhoto(string id, [FromForm] PhotoAddDTO photoModel)
        {
            if (id != User.FindFirst(JwtRegisteredClaimNames.Jti).Value)
            {
                return(Unauthorized());
            }

            var file         = photoModel.File;
            var uploadResult = new ImageUploadResult();

            if (file != null && file.Length > 0)
            {
                using (var stream = file.OpenReadStream())
                {
                    var uploadParams = new ImageUploadParams()
                    {
                        File           = new FileDescription(file.Name, stream),
                        Transformation = new Transformation().Width(500).Crop("fill").Gravity("face")
                    };
                    uploadResult = _cloudinary.Upload(uploadParams);
                }
            }
            photoModel.Url      = uploadResult.Uri.ToString();
            photoModel.PublicId = uploadResult.PublicId;
            var photo = _mapper.Map <Photo>(photoModel);
            var user  = await _context.Users.Include(p => p.Photos).FirstOrDefaultAsync(u => u.Id == id);

            if (!user.Photos.Any(p => p.IsMain))
            {
                photo.IsMain     = true;
                photo.IsApproved = true;
            }
            else
            {
                photo.IsMain = false;
            }
            user.Photos.Add(photo);
            if (await _context.SaveChangesAsync() > 0)
            {
                var addedPhoto = _mapper.Map <PhotoDetailsDTO>(photo);
                return(CreatedAtAction("GetPhoto", new { id = photo.Id }, addedPhoto));
            }
            else
            {
                return(BadRequest());
            }
        }
Пример #5
0
        public async Task <IActionResult> PostLike(LikeAddDTO likeDto)
        {
            if (likeDto.LikeFromUserId != User.FindFirst(JwtRegisteredClaimNames.Jti).Value.ToString())
            {
                return(Unauthorized());
            }
            if (LikeExists(likeDto.LikeFromUserId, likeDto.LikeToUserId))
            {
                return(BadRequest("Liked this before !"));
            }
            var like = _mapper.Map <Like>(likeDto);

            _context.Likes.Add(like);

            if (await _context.SaveChangesAsync() > 0)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
Пример #6
0
        public async Task <IActionResult> PostMessage(ChatAddDTO newMessage)
        {
            var message = _mapper.Map <Message>(newMessage);

            _context.Messages.Add(message);
            if (await _context.SaveChangesAsync() > 0)
            {
                await _hub.Clients.All.SendAsync("MessageReceived", newMessage);

                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }