Example #1
0
        public ActionResult Edit(ZetaCodeFanteziIplikEditVm model)
        {
            var container = new FanteziIplikContainerDto();

            container.FanteziIplik = model.FanteziIplik;
            var normalIplikler = new List <ZetaCodeNormalIplik>();

            //var fanteziIplikler = new List<ZetaCodeFanteziIplik>();
            if (model.KarsimdakiIplikler.Any())
            {
                for (int i = 0; i < model.KarsimdakiIplikler.Count; i++)
                {
                    var parts     = model.KarsimdakiIplikler[i].Value.Split('|');
                    var id        = parts[0];
                    var iplikTipi = parts[1];
                    if (iplikTipi.Equals("Normaliplik", StringComparison.InvariantCultureIgnoreCase))
                    {
                        normalIplikler.Add(new ZetaCodeNormalIplik()
                        {
                            Id = id.AsInt()
                        });
                    }
                    //else if (iplikTipi.Equals("Fanteziiplik", StringComparison.InvariantCultureIgnoreCase))
                    //{
                    //    fanteziIplikler.Add(new ZetaCodeFanteziIplik() { Id = id.AsInt() });
                    //}
                }
            }

            if (!string.IsNullOrWhiteSpace(model.RenkIdHtmlKod))
            {
                var parts = model.RenkIdHtmlKod.Split('|');
                var id    = parts[0].AsInt();
                container.FanteziIplik.Renkid = id;
                //container.Renk = new Renk() { Id = id, HtmlKod = parts[1] };
            }

            container.RafyeriTurkiye    = model.RafyeriTurkiye;
            container.RafyeriYunanistan = model.RafyeriYunanistan;

            container.NormalIplikler = normalIplikler;
            Action action = () =>
            {
                GetFanteziIplikService().InsertOrUpdate(container);
            };

            if (HandleException(action))
            {
                return(RedirectToAction(controllerName: "ZetaCode", actionName: "Index"));
            }

            var fanteziIplik = model.FanteziIplik;

            //FillCollections(model
            //    , sirketId: fanteziIplik.SirketId
            //    , ulkeId: container.Ulke.Id.AsInt()
            //   );

            return(View(viewName: "Edit", model: model));
        }
        public FanteziIplikContainerDto GetCard(int id, string compantId)
        {
            var container    = new FanteziIplikContainerDto();
            var fanteziIplik = _repository.QueryableNoTracking().FirstOrDefault(x => x.Id == id);

            if (fanteziIplik == null)
            {
                return(container);
            }
            var picture = _repoFanteziIplikPicture.QueryableNoTracking().FirstOrDefault(x => x.ZetaCodeFanteziIplikId == fanteziIplik.Id && x.CompanyId == fanteziIplik.SirketId);

            if (picture != null)
            {
                container.PictureUrl = picture.Name;
            }
            container.FanteziIplik         = fanteziIplik;
            container.AnaIplikKategorileri = _termService.GetAllParentsById(fanteziIplik.IplikKategosiId);
            container.AnaIplikKategorileri.Reverse();



            if (!string.IsNullOrWhiteSpace(fanteziIplik.SirketId))
            {
                var company = _companyService.GetCompanyById(fanteziIplik.SirketId);
                container.Company = company;
            }


            container.Renk              = _renkService.GetRenkById(fanteziIplik.Renkid);
            container.PantoneRenk       = _pantoneRenkService.GetPantoneRenkById(fanteziIplik.PantoneId);
            container.RafyeriTurkiye    = _termService.GetTermById(fanteziIplik.RafyeriTurkiyeId);
            container.RafyeriYunanistan = _termService.GetTermById(fanteziIplik.RafyeriYunanistanId);
            container.Ulke              = _othersService.GetCountryById(fanteziIplik.UlkeId);



            return(container);
        }
        public void InsertOrUpdate(FanteziIplikContainerDto container)
        {
            var tran = _repository.UnitOfWorkAsync();

            try
            {
                tran.BeginTransaction();
                var fanteziIplik = container.FanteziIplik;

                if (fanteziIplik.Id > 0)
                {
                    fanteziIplik.ChangedOn = DateTime.UtcNow;
                    this.Update(fanteziIplik);
                }
                else
                {
                    fanteziIplik.CreatedOn = DateTime.UtcNow;
                    this.Insert(fanteziIplik);
                }

                tran.SaveChanges();

                var oncekiNormalIplikler = (from fi in _repoFanteziIplikNormalIplik.Queryable()
                                            where fi.FanzteziIplikId == fanteziIplik.Id
                                            select fi).ToList();

                if (oncekiNormalIplikler.Any())
                {
                    foreach (var item in oncekiNormalIplikler)
                    {
                        item.IsPassive = true;
                        item.ChangedOn = DateTime.UtcNow;
                        _repoFanteziIplikNormalIplik.Update(item);
                    }
                }
                tran.SaveChanges();

                if (container.NormalIplikler.Any())
                {
                    //_repoFanteziIplikNormalIplik
                    for (int i = 0; i < container.NormalIplikler.Count; i++)
                    {
                        var normalIplik = container.NormalIplikler[i];

                        var oncekiNormalIplik = oncekiNormalIplikler.FirstOrDefault(x => x.FanzteziIplikId == fanteziIplik.Id && x.NormalIplikId == normalIplik.Id);

                        if (oncekiNormalIplik != null)
                        {
                            oncekiNormalIplik.IsPassive       = false;
                            oncekiNormalIplik.FanzteziIplikId = fanteziIplik.Id;
                            oncekiNormalIplik.NormalIplikId   = normalIplik.Id;
                            oncekiNormalIplik.ChangedOn       = DateTime.UtcNow;
                            _repoFanteziIplikNormalIplik.Update(oncekiNormalIplik);
                        }
                        else
                        {
                            _repoFanteziIplikNormalIplik.Insert(new ZetaCodeFanteziIplikNormalIplik()
                            {
                                NormalIplikId   = normalIplik.Id,
                                FanzteziIplikId = fanteziIplik.Id,
                                CreatedOn       = DateTime.UtcNow
                            });
                        }
                    }
                }
                tran.SaveChanges();

                if (container.RafyeriTurkiye != null)
                {
                    fanteziIplik.RafyeriTurkiyeId = container.RafyeriTurkiye.Id;
                }

                if (container.RafyeriYunanistan != null)
                {
                    fanteziIplik.RafyeriYunanistanId = container.RafyeriYunanistan.Id;
                }

                this.Update(fanteziIplik);
                tran.SaveChanges();

                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                container.FanteziIplik.Id = 0;
                throw;
            }
        }