Esempio n. 1
0
        protected decimal? ProcessEntity(decimal? listing_id,decimal? id, string type, List<Dictionary<string,object>> mappings, 
            string tableName,List<String>row, List<string> header, string user)
        {
            OracleRepository repo = new OracleRepository();
            var cols = new Dictionary<string, object>();
            if (id != null)
            {
                cols.Add("ID", id);
            }
            if (listing_id!=null)
            {
                cols.Add("LISTING_ID", listing_id);
            }
            if (type!=null)
            {
                cols.Add("TYPE", type);
            }

            for (int i=0; i< mappings.Count(); i++)
            {
                try
                {
                    int parsedOrdinal = 0;
                    int useHeader = 0;

                    if (mappings[i]["ORDINAL"] != DBNull.Value && int.TryParse(mappings[i]["ORDINAL"].ToString(), out parsedOrdinal))
                    {
                        if (row.Count() > parsedOrdinal)
                        {
                            if (mappings[i]["DATA_TYPE"] != DBNull.Value && mappings[i]["DATA_TYPE"].ToString().StartsWith ("DATE"))
                            {
                                double parseOADate = 0;
                                if (!String.IsNullOrEmpty(row[parsedOrdinal].ToString()) && double.TryParse(row[parsedOrdinal].ToString(), out parseOADate))
                                {
                                    cols.Add(mappings[i]["COLUMN_NAME"].ToString(), DateTime.FromOADate(parseOADate));
                                }
                                else
                                {
                                    if (mappings[i]["DATA_TYPE"].ToString()!="DATE_ONLY")
                                    {
                                        cols.Add(mappings[i]["COLUMN_NAME"].ToString(), row[parsedOrdinal]);
                                    }

                                }

                            }
                            else if (mappings[i]["DATA_TYPE"] != DBNull.Value && mappings[i]["DATA_TYPE"].ToString()=="NUMBER")
                            {
                                if (IsNumeric(row[parsedOrdinal]))
                                {
                                    cols.Add(mappings[i]["COLUMN_NAME"].ToString(), row[parsedOrdinal]);
                                }
                            }
                            else
                            {
                                cols.Add(mappings[i]["COLUMN_NAME"].ToString(), row[parsedOrdinal]);
                            }
                        }
                    }
                    if (mappings[i]["USE_HEADER_AS_NAME"] != DBNull.Value && int.TryParse(mappings[i]["USE_HEADER_AS_NAME"].ToString(), out useHeader))
                    {
                        if (useHeader == 1)
                        {
                            cols.Add("NAME", header[parsedOrdinal]);
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine("Unable to processEntity (ListingExcelService.ProcessEntity): Reason: {0}", ex.Message);
                }

            }

            var output = repo.InsertOrUpdateEntity(tableName, cols, user);
            return output as decimal?;
        }
 public ActionResult ListingBuilding(decimal? id)
 {
     OracleRepository repo = new OracleRepository();
     if (id== null)
     {
         id = repo.InsertOrUpdateEntity("TBUILDING_LISTING", new Dictionary<string, object>(), HttpContext.User.Identity.Name) as decimal?;
     }
     return View(id);
 }