コード例 #1
0
        public async Task <IHttpActionResult> Post(int id, [FromBody] ProviderDomainsBindingModel data)
        {
            // sanity checks
            if (data == null)
            {
                return(BadRequest("Недостаточно информации для добавления тематик"));
            }

            OperationResult <IEnumerable <ServiceDomainInfo> > result = await DomainsManager.AddDomainsAsync(id, data, UserId);

            if (result.Success)
            {
                var newComers = Mapper.Map <IEnumerable <ServiceDomainViewModel> >(result.Data);
                return(Ok(newComers));
            }
            else
            {
                return(BadRequest(result.ErrorMessage));
            }
        }
コード例 #2
0
        public async Task <OperationResult <IEnumerable <ServiceDomainInfo> > > AddDomainsAsync(int serviceLanguageInfoId, ProviderDomainsBindingModel domains, int userId)
        {
            var newDomains = new List <ServiceDomainInfo>();

            foreach (var id in domains.DomainIds)
            {
                var newDomain = new ServiceDomainInfo
                {
                    CreatedDate = DateTime.Now,
                    DomainId    = id,
                    QA          = new QA {
                        Comment = domains.Comment, Grade = 0.00M, Stars = (Stars)domains.Stars
                    },
                    LanguageId = serviceLanguageInfoId
                };
                newDomains.Add(newDomain);
                Repo.AddOrUpdate(newDomain);
                try
                {
                    await Repo.SaveAsUserAsync(userId);

                    Repo.BindGrades(newDomain);
                    await Repo.SaveAsUserAsync(userId);
                }
                catch (Exception ex)
                {
                    return(OperationResult <IEnumerable <ServiceDomainInfo> > .Error(string.Format("{0}{1}.", CANNOT_ADD_DOMAINS, ex.Message)));
                }
            }
            ;

            var newDomainIds = newDomains.Select(x => x.Id);

            var result = Repo
                         .Get(x => newDomainIds.Contains(x.Id))
                         .Include(x => x.Domain)
                         .Include(x => x.CreatedBy)
                         .Include(x => x.ModifiedBy)
                         .ToList();

            return(OperationResult <IEnumerable <ServiceDomainInfo> > .Ok(result));
        }