示例#1
0
        public ActionResult Create(HierarchyStructure hierarchyStructure, ICollection <HierarchyStructureCulture> hierarchyStructureCulture, FormCollection collection)
        {
            if (!ModelState.IsValid)
            {
                this.LoadViewData((hierarchyStructure.IDHierarchyStructureParent.HasValue) ? hierarchyStructure.IDHierarchyStructureParent.Value : 0);
                return(View());
            }
            else
            {
                int[] vinculatedStrucuture = new int[] { };
                if (collection["IDHierarchyStructureVinculated"] != null)
                {
                    vinculatedStrucuture = collection["IDHierarchyStructureVinculated"].Split(',').Select(n => int.Parse(n)).ToArray();
                }


                if (!hierarchyStructure.IDHierarchyStructure.HasValue)
                {
                    hierarchyStructure.CreateDate = DateTime.Now;
                    hierarchyStructure.CreatedBy  = SiteContext.ActiveUserName;
                    hierarchyStructure.ModifyDate = DateTime.Now;
                    hierarchyStructure.ModifiedBy = SiteContext.ActiveUserName;
                    ServiceContext.HierarchyStructureService.Insert(hierarchyStructure, hierarchyStructureCulture, vinculatedStrucuture);
                    this.TempData["Message"] = Internationalization.Message.Record_Inserted_Successfully;
                }
                else
                {
                    hierarchyStructure.ModifyDate = DateTime.Now;
                    hierarchyStructure.ModifiedBy = SiteContext.ActiveUserName;
                    ServiceContext.HierarchyStructureService.Update(hierarchyStructure, hierarchyStructureCulture, vinculatedStrucuture);
                    this.TempData["Message"] = Internationalization.Message.Record_Updated_Successfully;
                }
                return(RedirectToAction("create", new { id = hierarchyStructure.IDHierarchyStructure.Value }));
            }
        }
        public async Task <IActionResult> UpdateStructure([FromBody] HierarchyStructure item, int id)
        {
            if (item == null)
            {
                return(this.BadRequest());
            }

            var updated = await this.hierarchyServices.UpdateHierarchyStructureAsync(item, id);

            if (!updated)
            {
                return(this.NotFound());
            }

            return(new NoContentResult());
        }
示例#3
0
        public IHttpActionResult GetByID(int idHierarchyStructure = 0)
        {
            var item = ServiceContext.HierarchyStructureService.GetById(idHierarchyStructure);

            if (item == null)
            {
                item = new HierarchyStructure()
                {
                    Status = 1
                }
            }
            ;

            item.Culture = ServiceContext.HierarchyStructureService.ListCulture(idHierarchyStructure);
            return(Ok(item));
        }
示例#4
0
        private void SetParentNodes(
            HierarchyStructure newStructure,
            HierarchyStructure originalStructure,
            IReadOnlyCollection <HierarchyStructureNode> originalNodes)
        {
            if (newStructure.ChildNodes == null)
            {
                return;
            }

            foreach (var newNode in newStructure.ChildNodes)
            {
                newNode.ParentNode      = null;
                newNode.ParentStructure = originalStructure;
                this.SetParentNodeForNode(newNode, originalNodes);
            }
        }
示例#5
0
        public IHttpActionResult Save([FromBody] HierarchyStructure record)
        {
            string message = string.Empty;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else
            {
                ICollection <HierarchyStructureCulture> hierarchyStructureCulture = null;
                if (record.Culture != null)
                {
                    hierarchyStructureCulture = (from c in record.Culture
                                                 select new HierarchyStructureCulture
                    {
                        IDHierarchyStructure = ((record.IDHierarchyStructure.HasValue) ? record.IDHierarchyStructure.Value : 0),
                        Description = c.Description,
                        IDCulture = c.IDCulture
                    }).ToList();
                }

                if (record.IDHierarchyStructure.HasValue)
                {
                    record.ModifyDate = DateTime.Now;
                    record.ModifiedBy = SiteContext.ActiveUserName;
                    Services.ServiceContext.HierarchyStructureService.Update(record, hierarchyStructureCulture, null);
                    message = Internationalization.Message.Record_Updated_Successfully;
                }
                else
                {
                    record.CreateDate = DateTime.Now;
                    record.CreatedBy  = SiteContext.ActiveUserName;
                    record.ModifyDate = DateTime.Now;
                    record.ModifiedBy = SiteContext.ActiveUserName;
                    Services.ServiceContext.HierarchyStructureService.Insert(record, hierarchyStructureCulture, null);
                    message = Internationalization.Message.Record_Inserted_Successfully;
                }

                return(Ok(new { Message = message }));
            }
        }
        public async Task <IActionResult> CreateStructure([FromBody] HierarchyStructure item)
        {
            if (item == null)
            {
                return(this.BadRequest());
            }

            if (item.ChildNodes != null)
            {
                foreach (var node in item.ChildNodes)
                {
                    this.SetNodeRecursively(node);
                }
            }

            await this.unitOfWork.HierarchyStructureRepository.AddAsync(item);

            await this.unitOfWork.SaveAsync();

            return(this.CreatedAtRoute("GetStructure", new { id = item.Id }, item));
        }
示例#7
0
        //public IList<HierarchyStructureExtended> GetAll(out int recordCount, string idCulture, string sortType = null, int startRowIndex = -1, int maximumRows = -1)
        //{
        //    throw new NotImplementedException();
        //}

        public HierarchyStructure GetInsert(string categoryName, int?iDPurpose)
        {
            using (var context = new ImobeNetContext())
            {
                var hierarchy = (from hc in context.HierarchyStructureCulture
                                 join h in context.HierarchyStructure on hc.IDHierarchyStructure equals h.IDHierarchyStructure
                                 where hc.Description == categoryName
                                 select h).FirstOrDefault();

                if (hierarchy == null)
                {
                    hierarchy = new HierarchyStructure()
                    {
                        IDHierarchyStructureParent = 1, //residencial
                        IDIcon     = 6,
                        Status     = (short)Enums.StatusType.Pending,
                        CreateDate = DateTime.Now,
                        CreatedBy  = "AUTO",
                        ModifyDate = DateTime.Now,
                        ModifiedBy = "AUTO"
                    };

                    this.Insert(hierarchy);

                    foreach (var culture in ServiceContext.CultureService.GetAll())
                    {
                        ServiceContext.HierarchyStructureCultureService.Insert(new HierarchyStructureCulture()
                        {
                            IDHierarchyStructure = hierarchy.IDHierarchyStructure.Value,
                            Description          = categoryName,
                            IDCulture            = culture.IDCulture
                        });
                    }
                }

                return(hierarchy);
            }
        }
示例#8
0
        public async Task <bool> UpdateHierarchyStructureAsync(HierarchyStructure item, int id)
        {
            var hierarchy = await this.unitOfWork.HierarchyStructureRepository.GetSingleAsync(id, s => s.ChildNodes);

            if (hierarchy == null)
            {
                return(false);
            }

            foreach (var hierarchyStructureNode in hierarchy.ChildNodes)
            {
                await this.LoadRecursively(hierarchyStructureNode);
            }

            hierarchy.Name            = item.Name;
            hierarchy.Description     = item.Description;
            hierarchy.StartDate       = item.StartDate;
            hierarchy.FinalDate       = item.FinalDate;
            hierarchy.ActiveStatus    = item.ActiveStatus;
            hierarchy.GroupByPosition = item.GroupByPosition;
            hierarchy.PositionId      = item.GroupByPosition ? item.PositionId : null;

            var originalNodes = this.GetPlainNodeList(hierarchy.ChildNodes);

            this.SetParentNodes(item, hierarchy, originalNodes);
            var modifiedNodes = this.GetPlainNodeList(item.ChildNodes);

            var deleted  = originalNodes.Where(p => modifiedNodes.All(p2 => p2.Id != p.Id));
            var newNodes = modifiedNodes.Where(n => n.Id <= 0);

            foreach (var newNode in newNodes)
            {
                newNode.ChildNode = null;
                await this.unitOfWork.HierarchyStructureNodeRepository.AddAsync(newNode);
            }

            foreach (var originalNode in originalNodes)
            {
                var updated = modifiedNodes.FirstOrDefault(n => n.Id == originalNode.Id);
                if (updated != null && !updated.Equals(originalNode))
                {
                    originalNode.Name = updated.Name;

                    if (updated.ParentNodeId == 0)
                    {
                        originalNode.ParentNode   = updated.ParentNode;
                        originalNode.ParentNodeId = null;
                    }
                    else
                    {
                        originalNode.ParentNode   = null;
                        originalNode.ParentNodeId = updated.ParentNodeId;
                    }

                    originalNode.ParentStructure = updated.ParentStructure != null ? hierarchy : null;
                    this.unitOfWork.HierarchyStructureNodeRepository.Edit(originalNode);
                }
            }

            foreach (var deletedNode in deleted)
            {
                this.unitOfWork.HierarchyStructureNodeRepository.Delete(deletedNode);
            }

            this.unitOfWork.HierarchyStructureRepository.Edit(hierarchy);
            await this.unitOfWork.SaveAsync();

            return(true);
        }
示例#9
0
        //
        public void ExecuteItem(ResultadoItem item)
        {
            log.Info(string.Format("Processando: CodigoOfertaZAP: {0} Link:{1}", item.CodigoOfertaZAP, item.UrlFicha));
            Element element = SpongeSolutions.ServicoDireto.Services.ServiceContext.ElementService.GetByIDItemSite(item.CodigoOfertaZAP.ToString() + "|ZAP");

            if (element == null)
            {
                List <ElementAttribute> listElementAttribute = new List <ElementAttribute>();
                List <ElementCulture>   listElementCulture   = new List <ElementCulture>();
                StateProvince           stateProvince        = SpongeSolutions.ServicoDireto.Services.ServiceContext.StateProvinceService.GetInsert(item.Estado, "pt-BR");
                City               city               = SpongeSolutions.ServicoDireto.Services.ServiceContext.CityService.GetInsert(item.Cidade, stateProvince.IDStateProvince.Value);
                Purpose            purpose            = SpongeSolutions.ServicoDireto.Services.ServiceContext.PurposeService.GetInsert(item.Transacao);
                HierarchyStructure hierarchyStructure = SpongeSolutions.ServicoDireto.Services.ServiceContext.HierarchyStructureService.GetInsert(item.SubTipoOferta, purpose.IDPurpose);
                Customer           customer;
                string             email = null;
                string             phone = null;
                if (item.ContatoCampanha != null)
                {
                    email = item.ContatoCampanha.Email;
                    if (item.ContatoCampanha.Telefone != null)
                    {
                        phone = string.Format("({0}){1}", item.ContatoCampanha.Telefone.DDD, item.ContatoCampanha.Telefone.Numero);
                    }
                }
                customer = SpongeSolutions.ServicoDireto.Services.ServiceContext.CustomerService.GetInsert(item.NomeAnunciante, null, null, email, phone, item.CodigoAnunciante.ToString(), item.UrlLogotipoCliente);

                log.Info("Dado base retornado com sucesso");
                //
                element = new Element()
                {
                    //DefaultPicturePath = "",//????
                    IDHierarchyStructureParent = hierarchyStructure.IDHierarchyStructureParent.Value,
                    Latitude             = 0,
                    Longitude            = 0,
                    DetailView           = 0,
                    AllowRatting         = true,
                    IDItemSite           = item.CodigoOfertaZAP.ToString() + "|ZAP",
                    IDHierarchyStructure = hierarchyStructure.IDHierarchyStructure.Value,
                    IDPurpose            = purpose.IDPurpose.Value,
                    IDCustomer           = customer.IDCustomer.Value,
                    Address      = string.IsNullOrEmpty(item.Endereco) ? "-" : item.Endereco,
                    Neighborhood = item.Bairro,
                    IDCity       = city.IDCity.Value,
                    CreateDate   = DateTime.Now,
                    ModifyDate   = DateTime.Now,
                    CreatedBy    = "AUTO",
                    ModifiedBy   = "AUTO",
                    ShowAddress  = false,
                    Url          = item.UrlFicha,
                    PageView     = 0,
                    IsPromoted   = false,
                    Status       = (short)Enums.StatusType.Active,
                };
                //
                foreach (var culture in SpongeSolutions.ServicoDireto.Services.ServiceContext.CultureService.GetAllActive())
                {
                    listElementCulture.Add(new ElementCulture()
                    {
                        IDCulture   = culture.IDCulture,
                        Description = item.DetalhesOferta,
                        Name        = string.IsNullOrEmpty(item.Empreendimento) ? item.FormatarSubTipoOferta : item.Empreendimento
                    });
                }
                //colocar AttributeTypeCulture  em basico

                log.Info("Carregando attributos");

                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("Quartos/Dormitórios"), Value = item.QuantidadeQuartos.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("QuantidadeQuartosMinima"), Value = item.QuantidadeQuartosMinima.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("QuantidadeQuartosMaxima"), Value = item.QuantidadeQuartosMaxima.ToString()
                });
                //
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("Vagas de garagem"), Value = item.QuantidadeVagas.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("QuantidadeVagasMinima"), Value = item.QuantidadeVagasMinima.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("QuantidadeVagasMaxima"), Value = item.QuantidadeVagasMaxima.ToString()
                });
                //
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("Suites"), Value = item.QuantidadeSuites.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("QuantidadeSuitesMinima"), Value = item.QuantidadeSuitesMinima.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("QuantidadeSuitesMaxima"), Value = item.QuantidadeSuitesMaxima.ToString()
                });
                //
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("Área Útil (m²)"), Value = item.Area.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("Àrea Total (m²)"), Value = item.Area.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("AreaMinima"), Value = item.AreaMinima.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("AreaMaxima"), Value = item.AreaMaxima.ToString()
                });

                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("PrecoVendaMinimo"), Value = item.PrecoVendaMinimo.ToString()
                });
                listElementAttribute.Add(new ElementAttribute()
                {
                    IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("PrecoVendaMaximo"), Value = item.PrecoVendaMaximo.ToString()
                });

                if (!string.IsNullOrEmpty(item.Valor))
                {
                    Regex r = new Regex(ExpressionValidators.GetOnlyNumbers, RegexOptions.IgnoreCase);
                    Match m = r.Match(item.Valor);
                    listElementAttribute.Add(new ElementAttribute()
                    {
                        IDAttribute = SpongeSolutions.ServicoDireto.Services.ServiceContext.AttributeService.GetInsert("Valor Total (R$)"), Value = m.Value.Replace(".", "")
                    });
                }

                log.Info("Efetuando Inserção");
                SpongeSolutions.ServicoDireto.Services.ServiceContext.ElementService.Insert(element, listElementCulture, listElementAttribute);

                this.DownloadImages(item.Fotos, element);
                log.Info("OK---------------------------------\n\n\n");
            }
            else
            {
                log.Info("JA EXISTENTE---------------------------------\n\n\n");
            }
        }