Ejemplo n.º 1
0
        public string CriarCanaisVerdesConta(string organizationName, string contaId, string familiasIds)
        {
            string[]              lstRegitrosId        = familiasIds.Split(';');
            CanalVerdeService     canalVerdeService    = new CanalVerdeService(organizationName, false);
            RepositoryService     RepositoryService    = new RepositoryService(organizationName, false);
            DomainExecuteMultiple multipleCreateReturn = null;

            var jsSerializer = new JavaScriptSerializer();

            try
            {
                List <CanalVerde> canalVerdeList = new List <CanalVerde>();
                foreach (var familiaIdTmp in lstRegitrosId)
                {
                    string[]   segmentoEFamiliaIdsLst = familiaIdTmp.Split('|');
                    CanalVerde canalVerdeTmp          = new CanalVerde(organizationName, false);

                    canalVerdeTmp.Segmento       = new Lookup(new Guid(segmentoEFamiliaIdsLst[0]), "");
                    canalVerdeTmp.FamiliaProduto = new Lookup(new Guid(segmentoEFamiliaIdsLst[1]), "");
                    canalVerdeTmp.Canal          = new Lookup(new Guid(contaId), "");

                    canalVerdeList.Add(canalVerdeTmp);
                }

                multipleCreateReturn = RepositoryService.CanalVerde.Create(canalVerdeList);
            }
            catch (Exception e)
            {
                jsSerializer.MaxJsonLength = Int32.MaxValue;

                Dictionary <string, string> retornoMapErr = new Dictionary <string, string>();

                retornoMapErr.Add("return", "FALSE");
                retornoMapErr.Add("message", e.Message);
                var jsonErr = jsSerializer.Serialize(retornoMapErr);

                return(jsonErr.ToString());
            }


            jsSerializer.MaxJsonLength = Int32.MaxValue;
            Dictionary <string, string> retornoMap = new Dictionary <string, string>();

            if (multipleCreateReturn.IsFaulted)
            {
                retornoMap.Add("return", "FALSE");
            }
            else
            {
                retornoMap.Add("return", "TRUE");
            }

            var json = jsSerializer.Serialize(retornoMap);

            return(json.ToString());
        }
Ejemplo n.º 2
0
        public virtual DomainExecuteMultiple Create(List <T> collection)
        {
            ExecuteMultipleRequest request = new ExecuteMultipleRequest()
            {
                Settings = new ExecuteMultipleSettings()
                {
                    ContinueOnError = true,
                    ReturnResponses = false
                },
                Requests = new OrganizationRequestCollection()
            };

            foreach (T entity in collection)
            {
                var ent = EntityConvert.Convert <T>(entity, this.OrganizationName, this.IsOffline);
                request.Requests.Add(new CreateRequest()
                {
                    Target = ent, RequestId = ent.Id
                });
            }

            ExecuteMultipleResponse responseWithResults = (ExecuteMultipleResponse)this.Provider.Execute(request);

            DomainExecuteMultiple domainExecuteMultiple = new DomainExecuteMultiple();

            domainExecuteMultiple.IsFaulted = responseWithResults.IsFaulted;
            domainExecuteMultiple.List      = new DomainExecuteMultipleItem[collection.Count];

            foreach (var item in responseWithResults.Responses)
            {
                domainExecuteMultiple.List[item.RequestIndex] = new DomainExecuteMultipleItem()
                {
                    ID        = request.Requests[item.RequestIndex].RequestId.Value,
                    IsFaulted = (item.Fault != null),
                    Message   = (item.Fault == null) ? null : item.Fault.Message
                };
            }

            return(domainExecuteMultiple);
        }
Ejemplo n.º 3
0
        private List <string> AtualizarValoresPotencialProdutoMes(MetadaUnidade metaUnidade, int quantidadePorLote, Enum.OrcamentodaUnidade.Trimestres trimeste)
        {
            var listaPotencialProduto = RepositoryService.MetadaUnidadeporProduto.ListarPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value, trimeste);

            var listaError  = new List <string>();
            var listaCreate = new List <MetaDetalhadadaUnidadeporProduto>();
            var listaUpdate = new List <MetaDetalhadadaUnidadeporProduto>();

            foreach (var mes in Helper.ListarMeses(trimeste))
            {
                var listaTodos      = RepositoryService.MetadaUnidadeporProdutoMes.ListarValoresPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value, mes);
                var listaExistentes = RepositoryService.MetadaUnidadeporProdutoMes.ListarPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value, mes);

                foreach (var item in listaTodos)
                {
                    var itemExistente = listaExistentes.Find(x => x.Produto.Id == item.Produto.Id);

                    if (itemExistente == null)
                    {
                        var potencialProduto = listaPotencialProduto.Find(x => x.Produto.Id == item.Produto.Id);


                        item.Nome           = string.Format("{0} - {1} - {2}", metaUnidade.UnidadedeNegocios.Name, Helper.ConvertToInt(mes), item.Produto.Name).Truncate(100);
                        item.MetadoProduto  = new Lookup(potencialProduto.ID.Value, potencialProduto.Nome, SDKore.Crm.Util.Utility.GetEntityName(potencialProduto));
                        item.Trimestre      = (int)trimeste;
                        item.UnidadeNegocio = metaUnidade.UnidadedeNegocios;
                        item.RazaoStatus    = (int)Domain.Enum.MetaUnidadeporProdutoMes.StatusCode.Ativa;

                        listaCreate.Add(item);
                    }
                    else
                    {
                        item.ID = itemExistente.ID;
                        listaUpdate.Add(item);
                    }
                }
            }

            // Update em lote
            for (int i = 0; i < listaUpdate.Count; i += quantidadePorLote)
            {
                var retorno = RepositoryService.MetadaUnidadeDetalhadaProduto.Update(listaUpdate.Skip(i).Take(quantidadePorLote).ToList());

                foreach (var item in retorno)
                {
                    listaError.Add(item.Key + " - " + item.Value);
                }
            }

            // Create em lote
            for (int i = 0; i < listaCreate.Count; i += quantidadePorLote)
            {
                var listaEmLote = listaCreate.Skip(i).Take(quantidadePorLote).ToList();

                DomainExecuteMultiple retorno = RepositoryService.MetadaUnidadeDetalhadaProduto.Create(listaEmLote);

                if (retorno.IsFaulted)
                {
                    for (int x = 0; x < retorno.List.Length; x++)
                    {
                        var item = retorno.List[x];

                        listaError.Add("Create - " + item.Message);
                    }
                }
            }

            return(listaError);
        }
Ejemplo n.º 4
0
        private List <string> AtualizarValoresPotencialSubfamilia(MetadaUnidade metaUnidade, int quantidadePorLote, Enum.OrcamentodaUnidade.Trimestres?trimeste)
        {
            var listaTodos            = RepositoryService.MetadaUnidadeporSubfamilia.ListarValoresPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value, trimeste);
            var listaExistentes       = RepositoryService.MetadaUnidadeporSubfamilia.ListarPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value, trimeste);
            var listaPotencialFamilia = RepositoryService.MetadaUnidadeporFamilia.ListarPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value, trimeste);

            var listaError  = new List <string>();
            var listaCreate = new List <MetadaUnidadeporSubfamilia>();
            var listaUpdate = new List <MetadaUnidadeporSubfamilia>();

            foreach (var item in listaTodos)
            {
                var itemExistente = listaExistentes.Find(x => x.Trimestre.Value == item.Trimestre.Value &&
                                                         x.Subfamilia.Id == item.Subfamilia.Id);


                if (itemExistente == null)
                {
                    var potencialFamilia = listaPotencialFamilia.Find(x => x.Trimestre.Value == item.Trimestre.Value &&
                                                                      x.Familia.Id == item.Familia.Id);


                    item.UnidadedeNegocio = metaUnidade.UnidadedeNegocios;
                    item.Ano           = metaUnidade.Ano;
                    item.Nome          = string.Format("{0} - {1}", metaUnidade.UnidadedeNegocios.Name, item.Subfamilia.Name);
                    item.MetadaFamilia = new Lookup(potencialFamilia.ID.Value, potencialFamilia.Nome, SDKore.Crm.Util.Utility.GetEntityName(potencialFamilia));
                    item.RazaoStatus   = (int)Domain.Enum.MetaUnidadeporSubfamilia.StatusCode.Ativa;

                    listaCreate.Add(item);
                }
                else
                {
                    item.ID = itemExistente.ID;
                    listaUpdate.Add(item);
                }
            }

            // Update em lote
            for (int i = 0; i < listaUpdate.Count; i += quantidadePorLote)
            {
                var retorno = RepositoryService.MetadaUnidadeporSubfamilia.Update(listaUpdate.Skip(i).Take(quantidadePorLote).ToList());

                foreach (var item in retorno)
                {
                    listaError.Add(item.Key + " - " + item.Value);
                }
            }

            // Create em lote
            for (int i = 0; i < listaCreate.Count; i += quantidadePorLote)
            {
                var listaEmLote = listaCreate.Skip(i).Take(quantidadePorLote).ToList();

                DomainExecuteMultiple retorno = RepositoryService.MetadaUnidadeporSubfamilia.Create(listaEmLote);

                if (retorno.IsFaulted)
                {
                    for (int x = 0; x < retorno.List.Length; x++)
                    {
                        var item = retorno.List[x];

                        listaError.Add("Create - " + item.Message);
                    }
                }
            }

            return(listaError);
        }
        private Dictionary <Guid, string> AtualizarValoresPotencialSupervisor(MetadaUnidade metaUnidade, int quantidadePorLote)
        {
            var listaTodos      = RepositoryService.PotencialdoSupervisor.ListarValoresPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value);
            var listaExistentes = RepositoryService.PotencialdoSupervisor.ListarPorUnidadeNegocio(metaUnidade.UnidadedeNegocios.Id, metaUnidade.Ano.Value);

            var listaError  = new Dictionary <Guid, string>();
            var listaCreate = new List <PotencialdoSupervisor>();
            var listaUpdate = new List <PotencialdoSupervisor>();

            foreach (var item in listaTodos)
            {
                var itemExistente = listaExistentes.Find(x => x.Supervisor.Id == item.Supervisor.Id);

                if (itemExistente == null)
                {
                    item.UnidadedeNegocio = metaUnidade.UnidadedeNegocios;
                    item.Ano         = metaUnidade.Ano;
                    item.Nome        = string.Format("{0} - {1}", metaUnidade.UnidadedeNegocios.Name, item.Supervisor.Name);
                    item.RazaoStatus = (int)Domain.Enum.PotencialdoSupervisor.StatusCode.Ativa;

                    listaCreate.Add(item);
                }
                else
                {
                    item.ID = itemExistente.ID;
                    listaUpdate.Add(item);
                }
            }

            // Update em lote
            for (int i = 0; i < listaUpdate.Count; i += quantidadePorLote)
            {
                var retorno = RepositoryService.PotencialdoSupervisor.Update(listaUpdate.Skip(i).Take(quantidadePorLote).ToList());

                foreach (var item in retorno)
                {
                    listaError.Add(item.Key, item.Value);
                }
            }

            // Create em lote
            for (int i = 0; i < listaCreate.Count; i += quantidadePorLote)
            {
                var listaEmLote = listaCreate.Skip(i).Take(quantidadePorLote).ToList();

                DomainExecuteMultiple retorno = RepositoryService.PotencialdoSupervisor.Create(listaEmLote);


                if (retorno.IsFaulted)
                {
                    for (int x = 0; x < retorno.List.Length; x++)
                    {
                        var item = retorno.List[x];

                        if (item.IsFaulted)
                        {
                            listaError.Add(Guid.Empty, item.Message);
                        }
                    }
                }
            }

            return(listaError);
        }