예제 #1
0
        public CidadeViewModel Create(CidadeViewModel Model)
        {
            try
            {
                daoCidade DaoCidade = new daoCidade();

                CIDADE ModelAdd = DaoCidade.FindUfCidade(Model.CI_002_C, Model.CI_003_C);
                if (ModelAdd != null)
                {
                    throw new Exception("Já existe uma cidade com o mesmo no no estado");
                }
                else
                {
                    ModelAdd = Model.toCreate();
                    DaoCidade.Add(ModelAdd);
                }

                return(ModelAdd.toViewModel());
            }
            catch (DbEntityValidationException e)
            {
                #region Detalha Erro
                string erro = "";

                foreach (var eve in e.EntityValidationErrors)
                {
                    erro = "Entity of type \"{0}\" in state \"{1}\" has the following validation errors:";
                    erro = String.Format(erro, eve.Entry.Entity.GetType().Name, eve.Entry.State);

                    foreach (var ve in eve.ValidationErrors)
                    {
                        erro = erro + String.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                    }
                }

                #endregion
                throw new Exception(erro.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message.ToString());
            }
        }
예제 #2
0
        public DataTable CreateImport(HttpPostedFileBase upload)
        {
            try
            {
                if (upload != null && upload.ContentLength > 0)
                {
                    if (upload.FileName.EndsWith(".csv"))
                    {
                        Stream    stream   = upload.InputStream;
                        DataTable csvTable = new DataTable();
                        using (CsvReader csvReader =
                                   new CsvReader(new StreamReader(stream), true))
                        {
                            csvTable.Load(csvReader);
                        }

                        if (csvTable.Rows != null && csvTable.Rows[0].ItemArray.Count() == 9)
                        {
                            throw new Exception("Com numero de colunas incompativel");
                        }

                        List <CidadeViewModel> vmCidade = new List <CidadeViewModel>();
                        foreach (DataRow row in csvTable.Rows)
                        {
                            vmCidade.Add(row.toDataTableViewModel());
                        }

                        daoCidade DaoCidade = new daoCidade();
                        CIDADE    Model;
                        foreach (CidadeViewModel item in vmCidade)
                        {
                            Model = DaoCidade.FindUfCidade(item.CI_002_C, item.CI_003_C);
                            if (Model != null)
                            {
                                item.toEdit(Model);
                                DaoCidade.Update(Model);
                            }
                            else
                            {
                                Model = item.toCreate();
                                DaoCidade.Add(Model);
                            }
                        }

                        return(csvTable);
                    }
                    else
                    {
                        throw new Exception("Formato de arquivo invalido");
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                #region Detalha Erro
                string erro = "";

                foreach (var eve in e.EntityValidationErrors)
                {
                    erro = "Entity of type \"{0}\" in state \"{1}\" has the following validation errors:";
                    erro = String.Format(erro, eve.Entry.Entity.GetType().Name, eve.Entry.State);

                    foreach (var ve in eve.ValidationErrors)
                    {
                        erro = erro + String.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                    }
                }

                #endregion
                throw new Exception(erro.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message.ToString());
            }

            return(null);
        }