public string createNewRecording(string nameServer, string user, AccrualPayment[] accrualsPayments) { // Получить список идентификаторов приложений с указанного центрального ИнМета-сервера. string[] idAppCentralServer = DataApplication.GetAppIds(nameServer); DataApplication app; if (idAppCentralServer.Contains("EstateOrenburg")) { app = new DataApplication(idAppCentralServer[0], nameServer); } else { app = null; return("Create application failure"); } // Создание сессии (подключение к БД) DataSession session = app.CreateSession(user); //DataSession session = app.CreateSession(); //session.Db.BeginTransaction("",""); // Прописываем свойства, которые нам необходимо прогрузить при первом запросе string loadPlan = "<Executor/>"; Dictionary <string, List <string> > dictMappingOIDwithPersonalAccount = getMappingOIDwithPersonalAccount(); for (int i = 0; i < accrualsPayments.Length; i++) { if (dictMappingOIDwithPersonalAccount.ContainsKey(accrualsPayments[i].PersonalAccount)) { accrualsPayments[i].OIDobject = dictMappingOIDwithPersonalAccount[accrualsPayments[i].PersonalAccount][0]; // Получение списка объектов DataObjectList rentApartContrProc; if (session != null) { DataStorage dataStorage = session["Constr/RentPrivatizationApartmentContractProcess"]; rentApartContrProc = dataStorage.Query(loadPlan, "OID=?", accrualsPayments[i].OIDobject); // 000859F5EC33 } else { return("Create session failure"); } // Создание нового объекта //session["Constr/AccrualsPaymentsSocialContract"].AddNew(); foreach (Integro.InMeta.Runtime.DataObject racp in rentApartContrProc) { //// Чтение свойств объекта //racp.GetString("ContractNo", "No date"); //racp.GetDateTime("ContractDate"); ////Запись свойств объекта //racp.SetString("ContractNo", "xxx"); //racp.SetDateTime("ContractDate", DateTime.Today); // Добавлению нового дочернего объекта DataObject accrualsPaymentsSocialContract = racp.GetChilds("Constr/AccrualsPaymentsSocialContract").AddNew(); DataObjectChildList employers = racp.GetChilds("Constr/Employers"); DataObject searchEmployer = null; foreach (DataObject employer in employers) { if (employer.GetString("PersonalAccount").Equals(accrualsPayments[i].PersonalAccount)) { searchEmployer = employer; break; } } if (searchEmployer != null) { accrualsPaymentsSocialContract.SetLink("Subject", searchEmployer); } // var dateTime2 = DateTime.ParseExact(accrualsPayments[i].DateAccrual, "dd.M.yyyy", null); string[] periodStr = accrualsPayments[i].Period.Split('.'); DateTime period = new DateTime(Convert.ToInt32(periodStr[0]), Convert.ToInt32(periodStr[1]), Convert.ToInt32(periodStr[2])); accrualsPaymentsSocialContract.SetString("PersonalAccount", accrualsPayments[i].PersonalAccount ?? String.Empty); accrualsPaymentsSocialContract.SetString("IdAccrual", accrualsPayments[i].IdAccrual ?? String.Empty); accrualsPaymentsSocialContract.SetDateTime("Period", period); accrualsPaymentsSocialContract.SetDouble("Accrual", Convert.ToDouble(accrualsPayments[i].SummAccrual ?? String.Empty)); accrualsPaymentsSocialContract.SetDouble("SummPayment", Convert.ToDouble(accrualsPayments[i].SummPayment ?? String.Empty)); } } else { accrualsPayments[i].OIDobject = "Not Found"; } } //Сохранение объектов в БД session.Commit(); //Запись не найденых ЛС writeInFile(accrualsPayments); return("Upload successful"); }