Beispiel #1
0
        public async Task <IActionResult> GetBusiness(int id)
        {
            var business = await _repo.GetBusiness(id);

            var businessToReturn = _mapper.Map <BusinessForDetailedDto>(business);

            return(Ok(businessToReturn));
        }
        public async Task <IActionResult> AddVideoForUser(int businessId,
                                                          [FromForm] VideoForCreationDto videoForCreationDto)
        {
            var businessFromRepo = await _repo.GetBusiness(businessId);

            if (businessFromRepo.UserId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }


            var file = videoForCreationDto.File;

            var uploadResult = new VideoUploadResult();

            if (file.Length > 0)
            {
                using (var stream = file.OpenReadStream())
                {
                    var uploadParams = new VideoUploadParams
                    {
                        File = new FileDescription(file.Name, stream)
                    };

                    uploadResult = _cloudinary.Upload(uploadParams);
                }
            }

            if (businessFromRepo.Video != null && businessFromRepo.Video.PublicId != null)
            {
                var deleteParams = new DeletionParams(businessFromRepo.Video.PublicId)
                {
                    ResourceType = ResourceType.Video
                };

                var result = _cloudinary.Destroy(deleteParams);

                if (result.Result == "ok")
                {
                    _repo.Delete(businessFromRepo.Video);
                }
            }

            videoForCreationDto.Url      = uploadResult.Uri.ToString();
            videoForCreationDto.PublicId = uploadResult.PublicId;

            var video = _mapper.Map <VideoModel>(videoForCreationDto);

            businessFromRepo.Video = video;

            if (await _repo.SaveAll())
            {
                var videoToReturn = _mapper.Map <VideoForReturnDto>(video);
                return(CreatedAtRoute("GetVideo", new { id = video.Id }, videoToReturn));
            }

            return(BadRequest("Cloud not add the video"));
        }
Beispiel #3
0
        public void IsBusinessGood_BusinessDoesNotExist_ThrowsUnauthorizedAccessException()
        {
            // Arrange
            businessRepositoryFake.GetBusiness(Arg.Any <Guid>()).ReturnsNull();

            // Act
            var exception = Assert.Throws <UnauthorizedAccessException>(() => this.main.IsBusinessGood(Guid.NewGuid()));

            // Assert
            StringAssert.Contains("Unauthorized access", exception.Message);
        }
Beispiel #4
0
        public async Task <IActionResult> AddPhotoForBusiness(int businessId,
                                                              [FromForm] PhotoForCreationDto photoForCreationDto)
        {
            var businessFromRepo = await _repo.GetBusiness(businessId);

            if (businessFromRepo.UserId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }


            var file = photoForCreationDto.File;

            var uploadResult = new ImageUploadResult();

            if (file.Length > 0)
            {
                using (var stream = file.OpenReadStream())
                {
                    var uploadParams = new ImageUploadParams
                    {
                        File = new FileDescription(file.Name, stream)
                    };

                    uploadResult = _cloudinary.Upload(uploadParams);
                }
            }

            photoForCreationDto.Url      = uploadResult.Uri.ToString();
            photoForCreationDto.PublicId = uploadResult.PublicId;

            var photo = _mapper.Map <Photo>(photoForCreationDto);

            if (!businessFromRepo.Photos.Any(u => u.IsMain))
            {
                photo.IsMain = true;
            }

            businessFromRepo.Photos.Add(photo);
            businessFromRepo.IsPublishable = businessFromRepo.Photos.Any();

            if (await _repo.SaveAll())
            {
                var photoToReturn = _mapper.Map <PhotoForReturnDto>(photo);
                return(CreatedAtRoute("GetPhoto", new { id = photo.Id }, photoToReturn));
            }

            return(BadRequest("Cloud not add the photo"));
        }
Beispiel #5
0
        public IActionResult Login(string username, string pwd, string code)
        {
            var result = new JsonData();

            if (code != null)
            {
                if (HttpContext.Session.Get <string>("VerificationCode") != code)
                {
                    result.Msg = "验证码错误";
                    return(Json(result));
                }
            }
            var business = _service.GetBusiness(a => (a.Code == username || a.Mobile == username) && a.Password == UtilHelper.MD5Encrypt(pwd));

            if (business == null)
            {
                result.Msg = "帐号或密码错误";
                return(Json(result));
            }
            result.Success = true;
            result.Data    = business;
            HttpContext.Session.Set(_appData.Session, business);
            HttpContext.Response.Cookies.Append(_appData.Cookie, business.ObjectId,
                                                new CookieOptions
            {
                Expires = DateTime.Now.AddDays(3)
            });
            return(Json(result));
        }
        public bool IsBusinessGood(Guid id)
        {
            var business = Repository.GetBusiness(id);

            if (business == null)
            {
                NotificationService.Notify(new Uri("https://www.notify.io"), "Could not find business");
                throw new UnauthorizedAccessException("Unauthorized access");
            }

            return(business.Age() > 5);
        }