コード例 #1
0
        public async Task <ActionResult <InfluencerVM> > CreateInfluencer(InfluencerVM influencerVM)
        {
            try
            {
                if (influencerVM == null)
                {
                    return(BadRequest());
                }

                // Add custom model validation error
                Influencer influencer = await influencerRepository.GetInfluencerByname(influencerVM.Influencer);

                if (influencer != null)
                {
                    ModelState.AddModelError("Name", $"Influencer name: {influencerVM.Influencer.Name} already in use");
                    return(BadRequest(ModelState));
                }

                await influencerRepository.CreateInfluencer(influencerVM);

                return(CreatedAtAction(nameof(GetInfluencer),
                                       new { id = influencerVM.Influencer.Id }, influencerVM));
            }
            catch (DbUpdateException Ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  Ex.InnerException.Message));
            }
        }
コード例 #2
0
        public async Task <InfluencerVM> GetInfluencer(int id)
        {
            InfluencerVM influencerVM = new InfluencerVM();

            influencerVM.Influencer = await appDbContext.Influencers.FirstOrDefaultAsync(e => e.Id == id);

            return(influencerVM);
        }
コード例 #3
0
        public async Task <InfluencerVM> CreateInfluencer(InfluencerVM influencerVM)
        {
            var result = await appDbContext.Influencers.AddAsync(influencerVM.Influencer);

            await appDbContext.SaveChangesAsync();

            influencerVM.Influencer = result.Entity;
            return(influencerVM);
        }
コード例 #4
0
        private async Task <InfluencerVM> CheckDeserialize(HttpResponseWrapper <InfluencerVM> httpResponseWrapper)
        {
            InfluencerVM influencerVM = new InfluencerVM();

            if (httpResponseWrapper.Success)
            {
                influencerVM = await Deserialize <InfluencerVM>(httpResponseWrapper.HttpResponseMessage, defaultJsonSerializerOptions);
            }
            else
            {
                influencerVM.Exception = await httpResponseWrapper.GetBody();
            }

            return(influencerVM);
        }
コード例 #5
0
        public async Task <InfluencerVM> UpdateInfluencer(InfluencerVM influencerVM)
        {
            Influencer result = await appDbContext.Influencers
                                .FirstOrDefaultAsync(e => e.Id == influencerVM.Influencer.Id);

            if (result != null)
            {
                appDbContext.Entry(result).State = EntityState.Detached;
                result = mapper.Map(influencerVM.Influencer, result);
                appDbContext.Entry(result).State = EntityState.Modified;

                await appDbContext.SaveChangesAsync();

                return(new InfluencerVM {
                    Influencer = result
                });
            }

            return(null);
        }
コード例 #6
0
        public async Task <InfluencerVM> UpdateInfluencer(int id, InfluencerVM influencerVM)
        {
            var response = await httpService.Put($"{url}/{id}", influencerVM);

            return(await CheckDeserialize(response));
        }
コード例 #7
0
        public async Task <InfluencerVM> CreateInfluencer(InfluencerVM influencerVM)
        {
            var response = await httpService.PostAsync(url, influencerVM);

            return(await CheckDeserialize(response));
        }