Example #1
0
        public async Task <IActionResult> Save([FromBody] OrganisationRequestModel request)
        {
            var sellerClaim = this.User.Claims.FirstOrDefault(x => x.Type == AccountConstants.Claims.OrganisationIdClaim);

            if (!request.Id.HasValue)
            {
                var serviceModel = new CreateOrganisationServiceModel
                {
                    Name  = request.Name,
                    Email = request.Email,
                    CommunicationsLanguage = request.CommunicationLanguage,
                    Language       = CultureInfo.CurrentCulture.Name,
                    Username       = this.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value,
                    OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value)
                };

                var validator = new CreateOrganisationModelValidator();

                var validationResult = await validator.ValidateAsync(serviceModel);

                if (validationResult.IsValid)
                {
                    var organisation = await this.organisationService.CreateAsync(serviceModel);

                    if (organisation != null)
                    {
                        var response = new OrganisationResponseModel
                        {
                            Id          = organisation.Id,
                            Description = organisation.Description,
                            Name        = organisation.Name,
                            Files       = organisation.Files,
                            Images      = organisation.Images,
                            Videos      = organisation.Videos
                        };

                        return(this.StatusCode((int)HttpStatusCode.Created, response));
                    }
                }

                throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity);
            }

            return(this.StatusCode((int)HttpStatusCode.BadRequest));
        }
Example #2
0
        public async Task <IActionResult> Get(Guid?id)
        {
            var serviceModel = new GetSellerModel
            {
                Id       = id,
                Language = CultureInfo.CurrentCulture.Name
            };

            var validator = new GetSellerModelValidator();

            var validationResult = await validator.ValidateAsync(serviceModel);

            if (validationResult.IsValid)
            {
                var seller = await this.organisationService.GetAsync(serviceModel);

                if (seller != null)
                {
                    var response = new OrganisationResponseModel
                    {
                        Id          = seller.Id,
                        Name        = seller.Name,
                        Description = seller.Description,
                        Files       = seller.Files,
                        Images      = seller.Images,
                        Videos      = seller.Videos
                    };

                    return(this.StatusCode((int)HttpStatusCode.OK, response));
                }
                else
                {
                    return(this.StatusCode((int)HttpStatusCode.NotFound));
                }
            }

            return(this.StatusCode((int)HttpStatusCode.UnprocessableEntity));
        }
Example #3
0
        public async Task <IActionResult> Get(string email)
        {
            var serviceModel = new GetOrganisationModel
            {
                Email    = email,
                Language = CultureInfo.CurrentCulture.Name
            };

            var validator = new GetOrganisationModelValidator();

            var validationResult = await validator.ValidateAsync(serviceModel);

            if (validationResult.IsValid)
            {
                var organisation = await this.organisationService.GetAsync(serviceModel);

                if (organisation != null)
                {
                    var response = new OrganisationResponseModel
                    {
                        Id          = organisation.Id,
                        Name        = organisation.Name,
                        Description = organisation.Description,
                        Files       = organisation.Files,
                        Images      = organisation.Images,
                        Videos      = organisation.Videos
                    };

                    return(this.StatusCode((int)HttpStatusCode.OK, response));
                }
                else
                {
                    return(this.StatusCode((int)HttpStatusCode.NotFound));
                }
            }

            return(this.StatusCode((int)HttpStatusCode.UnprocessableEntity));
        }