Ejemplo n.º 1
0
        public async Task <IActionResult> PostMarketingEvent([FromBody] MarketingEvent marketingEvent)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            MarketingEvent MarketingEventdb = _context.MarketingEvent.FirstOrDefault(c => c.Code == marketingEvent.Code);

            if (MarketingEventdb != null)
            {
                MarketingEventdb.Descr   = marketingEvent.Descr;
                MarketingEventdb.Version = marketingEvent.Version;
                MarketingEventdb.IsMark  = marketingEvent.IsMark;

                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetMarketingEvent", new { id = marketingEvent.MarketingEventId }, MarketingEventdb));
            }
            else
            {
                _context.MarketingEvent.Add(marketingEvent);
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetMarketingEvent", new { id = marketingEvent.MarketingEventId }, marketingEvent));
            }
        }
Ejemplo n.º 2
0
        public static MarketingEvent AddMarketingEvent(ISession dbSession, Association association)
        {
            var newItem = new MarketingEvent();

            newItem.Name        = " new MarketingEvent";
            newItem.Association = association;
            dbSession.Save(newItem);
            return(newItem);
        }
        public ActionResult Save(MarketingEventViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("Edit", model));
            }

            if (model.AddMode)
            {
                var marketingEvent = new MarketingEvent {
                    Association = CurrentAssociation,
                    Name        = model.Name
                };
                DbSession.Save(marketingEvent);

                EditedEvent.SelectedProducers.ForEach(p => {
                    DbSession.CreateSQLQuery(
                        "insert into Customers.PromoterProducers (ProducerId, MarketingEventId) values (:id, :eventId)")
                    .SetParameter("id", p.Id)
                    .SetParameter("eventId", marketingEvent.Id)
                    .ExecuteUpdate();
                });
            }
            else
            {
                var marketingEvent = DbSession.Query <MarketingEvent>().FirstOrDefault(r => r.Id == model.MarketingEventId);
                if (marketingEvent == null)
                {
                    return(HttpNotFound());
                }

                var producers = DbSession.Query <PromoterProducer>()
                                .Where(r => r.MarketingEvent == marketingEvent)
                                .ToArray();
                producers.Where(r => !EditedEvent.SelectedProducers.Contains(r.Producer)).ForEach(p => { DbSession.Delete(p); });
                EditedEvent.SelectedProducers.Where(r => !producers.Any(p => p.Producer == r)).ForEach(x => {
                    DbSession.CreateSQLQuery(
                        "insert into Customers.PromoterProducers (ProducerId, MarketingEventId) values (:id, :eventId)")
                    .SetParameter("id", x.Id)
                    .SetParameter("eventId", marketingEvent.Id)
                    .ExecuteUpdate();
                });
            }

            EditedEvent = null;

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 4
0
        /// <summary>
        ///   Добавление поставщика для пользователя
        /// </summary>
        /// <param name="dbSession"></param>
        /// <param name="promoter"></param>
        /// <param name="producer"></param>
        /// <param name="contacts">По умолчанию "+7 (000) 00 00"</param>
        /// <returns></returns>
        public static PromoterProducer AddPromoterProducer(ISession dbSession, Promoter promoter, Producer producer,
                                                           MarketingEvent marketingEvent,
                                                           string contacts = null)
        {
            var newItem = new PromoterProducer();

            // todo исправить после окончательного изменения структуры БД
            newItem.MarketingEvent = marketingEvent;
            newItem.Producer       = producer;
            if (contacts == null)
            {
                newItem.Contacts = "+7 (000) 00 00";
            }
            dbSession.Save(newItem);
            return(newItem);
        }
        public async Task <IActionResult> PostMarketingEventProduct([FromBody] List <MarketingEventProductCode> marketingEventProductCode)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int count = 0;

            foreach (var item in marketingEventProductCode)
            {
                MarketingEvent marketingEvent = _context.MarketingEvent.FirstOrDefault(p => p.Code == item.MarketingEventCode);
                Product        product        = _context.Products.FirstOrDefault(p => p.Code == item.ProductCode);

                if (marketingEvent == null)
                {
                    return(BadRequest(ModelState));
                }

                if (product == null)
                {
                    return(BadRequest(ModelState));
                }

                var marketingEventProduct = await _context.MarketingEventProduct.SingleOrDefaultAsync(c => c.MarketingEventId == marketingEvent.MarketingEventId& c.ProductId == product.ProductId);

                if (marketingEventProduct != null)
                {
                    marketingEventProduct.MarketingEvent = marketingEvent;
                    marketingEventProduct.Product        = product;
                }
                else
                {
                    marketingEventProduct = new MarketingEventProduct();
                    marketingEventProduct.MarketingEvent = marketingEvent;
                    marketingEventProduct.Product        = product;
                }

                _context.AttachRange(marketingEventProduct);
                count++;
            }

            await _context.SaveChangesAsync();

            return(Ok(new { count = count }));
        }
        public async Task <IActionResult> GetMarketingEventProduct([FromRoute] MarketingEventProductCode marketingEventProductCode)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            MarketingEvent marketingEvent = _context.MarketingEvent.FirstOrDefault(p => p.Code == marketingEventProductCode.MarketingEventCode);
            Product        products       = _context.Products.FirstOrDefault(p => p.Code == marketingEventProductCode.ProductCode);

            var marketingEventProduct = await _context.MarketingEventProduct.SingleOrDefaultAsync(c => c.MarketingEventId == marketingEvent.MarketingEventId& c.ProductId == products.ProductId);

            if (marketingEventProduct == null)
            {
                return(NotFound());
            }

            return(Ok(marketingEventProduct));
        }