public ActionResult Get() { var model = externalUow.Query <BestellErfassung.DomainObjects.Kunden.Kundenstamm>(); var model1 = new XPCollection <BestellErfassung.DomainObjects.Kunden.Kundenstamm>(externalUow, CriteriaOperator.Parse("kdauftrgesperrt == ?", false)); return(Content(model1.Count().ToString())); }
public static ICollection <Inventory> GetLPNInventoryRecords(Session session, string fullLPNNumber, int customerID) { //Dim LPNNumber As Integer = Integer.Parse(fullLPNNumber.Replace(CustomersBLL.GetLPNPrefix(customerID), "")) ICollection <Inventory> result = new Collection <Inventory>(); result = new XPCollection <Inventory>(session, new BinaryOperator(Inventory.Fields.InventoryItemID.ItemCustomerID.CustomerID.PropertyName, customerID, BinaryOperatorType.Equal) & new BinaryOperator("FullLPNNumber", fullLPNNumber, BinaryOperatorType.Equal)); if (result.Count() == 0 && !fullLPNNumber.StartsWith(CustomersBLL.GetLPNPrefix(7))) { //If customerID = 7 Then // Dim locationInventorys As XPCollection(Of LocationInventoryByLot) = New XPCollection(Of LocationInventoryByLot)(session, // New BinaryOperator(LocationInventoryByLot.Fields.LPNNumber.PropertyName, Integer.Parse(fullLPNNumber.Replace(CustomersBLL.GetLPNPrefix(customerID), "")), BinaryOperatorType.Equal)) // If locationInventorys.Count < 1 Then Return result // Dim locationInventory As LocationInventoryByLot = locationInventorys(0) // Dim convertToInventory As Inventory = New Inventory(session) With {.InventoryItemID = locationInventory.LocationInventoryItem, .InventoryQuantity = CInt(locationInventory.QuantityOnHand), // .Lot = locationInventory.LocationInventoryLot, .FullLPNNumber = fullLPNNumber, .ExpirationDate = locationInventory.ExpirationDate} // result = New Collection(Of Inventory) // result.Add(convertToInventory) //Else result = new XPCollection <Inventory>(session, new BinaryOperator(Inventory.Fields.InventoryItemID.ItemCustomerID.CustomerID.PropertyName, customerID, BinaryOperatorType.Equal) & new BinaryOperator("LPNNumber", int.Parse(fullLPNNumber.Replace(CustomersBLL.GetLPNPrefix(customerID), "")), BinaryOperatorType.Equal)); //End If } return(result); }
public BusinessObject GetOldestUnprocessedObject(Session session, Guid jobId, List <int> ObjectType) { BusinessObject oldestObject = null; try { ETLJob etlJob = session.GetObjectByKey <ETLJob>(jobId); if (etlJob == null) { return(null); } ETLLogBO etlLogBO = new ETLLogBO(); XPCollection <ETLBusinessObject> etlBusinessObjectCollection = etlLogBO.GetChangedIssuedDateETLBusinessObject(session, jobId); if (etlBusinessObjectCollection != null && etlBusinessObjectCollection.Count() != 0) { etlBusinessObjectCollection.Sorting.Add(new SortProperty("BusinessObject.IssuedDateTimeStamp", SortingDirection.Ascending)); ETLBusinessObject oldestETLBusinessObject = etlBusinessObjectCollection.FirstOrDefault(); etlBusinessObjectCollection = etlLogBO.GetNewerETLBusinessObject(session, jobId, oldestETLBusinessObject.BusinessObjectIssuedDateTimeStamp); foreach (ETLBusinessObject EBO in etlBusinessObjectCollection) { EBO.RowStatus = -2; EBO.Save(); } oldestETLBusinessObject.RowStatus = -2; oldestETLBusinessObject.Save(); } CriteriaOperator criteria_0 = new InOperator("ObjectType", ObjectType); CriteriaOperator criteria_1 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.Greater); CriteriaOperator criteria = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1); XPCollection <BusinessObject> businessObjectCollection = new XPCollection <BusinessObject>(session, criteria); businessObjectCollection.Sorting.Add(new SortProperty("ObjectIssueDate", SortingDirection.Ascending)); businessObjectCollection.Sorting.Add(new SortProperty("IssuedDateTimeStamp", SortingDirection.Ascending)); foreach (BusinessObject bo in businessObjectCollection) { if (NeedToBeProcessed(session, bo.BusinessObjectId, jobId)) { return(bo); } } } catch (Exception) { throw; } return(oldestObject); }
public void ProsesPerhitunganKedekatan() { XPCollection <DataKasus> querykasus = new XPCollection <DataKasus>(Session); XPCollection <DataGejala> querygejala = new XPCollection <DataGejala>(Session); XPCollection <DataKasusDetail> querykasusdetail = new XPCollection <DataKasusDetail>(Session); XPCollection <DataKeluhanDetail> querykeluhandetail = new XPCollection <DataKeluhanDetail>(Session); CriteriaOperator criteriakasus; CriteriaOperator criteriagejala; SortingCollection sortkasus = new SortingCollection(); SortingCollection sortgejala = new SortingCollection(); CriteriaOperator criteriakasusdetail; CriteriaOperator criteriakeluhandetail; PerhitunganKedekatan newdataperhitungan; Kedekatan newdatakedekatan; criteriakasus = BinaryOperator.Parse("aktif = true"); sortkasus.Add(new SortProperty("kodekasus", SortingDirection.Ascending)); querykasus.Sorting = sortkasus; querykasus.Criteria = criteriakasus; criteriagejala = BinaryOperator.Parse("aktif = true"); sortgejala.Add(new SortProperty("kodegejala", SortingDirection.Ascending)); querygejala.Sorting = sortgejala; querygejala.Criteria = criteriagejala; Debug.WriteLine("querykasus : " + querykasus); List <PerhitunganKedekatan> listperhitungan = new List <PerhitunganKedekatan>(); List <PerhitunganKedekatan> theDatax = new List <PerhitunganKedekatan>(); newdatakedekatan = new Kedekatan(Session); newdatakedekatan.datakeluhan = this; newdatakedekatan.datapasien = this.datapasien; foreach (DataKasus thedatakasus in querykasus) { string perhitunganatas = "= "; double intperhitunganatas = 0; string pembagi = "/"; double intpembagi = 0; int temp = 0; //Debug.WriteLine("kode kasus : " + thedatakasus.kodekasus); newdataperhitungan = new PerhitunganKedekatan(Session); newdataperhitungan.datakasus = thedatakasus; //Debug.WriteLine("kode kasus2 : " + newdataperhitungan.datakasus.kodekasus); foreach (DataGejala thedatagejala in querygejala) { criteriakasusdetail = BinaryOperator.Parse("datakasus = '" + thedatakasus.Oid + "' and datagejala = '" + thedatagejala.Oid + "'"); querykasusdetail.Criteria = criteriakasusdetail; criteriakeluhandetail = BinaryOperator.Parse("datakeluhan = '" + this.Oid + "' and datagejala = '" + thedatagejala.Oid + "'"); querykeluhandetail.Criteria = criteriakeluhandetail; intpembagi = intpembagi + thedatagejala.bobot; temp = temp + 1; // Debug.WriteLine("xxx temp xxx : xxx " + temp); if (temp == 1) { pembagi = pembagi + thedatagejala.bobot; } else { pembagi = pembagi + "+" + thedatagejala.bobot; } if (querykasusdetail.Count() == 0 && querykeluhandetail.Count() == 0) { if (temp == 1) { perhitunganatas = perhitunganatas + "(1x" + thedatagejala.bobot + ")"; temp = temp + 1; } else { perhitunganatas = perhitunganatas + "+(1x" + thedatagejala.bobot + ")"; } intperhitunganatas = intperhitunganatas + 1 * thedatagejala.bobot; } else if (querykasusdetail.Count() != 0 && querykeluhandetail.Count() != 0) { foreach (DataKeluhanDetail abc in querykeluhandetail) { if (temp == 1) { perhitunganatas = perhitunganatas + "(1x" + thedatagejala.bobot + ")"; temp = temp + 1; } else { perhitunganatas = perhitunganatas + "+(1x" + thedatagejala.bobot + ")"; } intperhitunganatas = intperhitunganatas + 1 * thedatagejala.bobot; } } else { if (temp == 1) { perhitunganatas = perhitunganatas + "(0x" + thedatagejala.bobot + ")"; } else { perhitunganatas = perhitunganatas + "+(0x" + thedatagejala.bobot + ")"; } intperhitunganatas = intperhitunganatas + 0 * thedatagejala.bobot; } newdataperhitungan.perhitungan = perhitunganatas + pembagi + " \r\n = " + intperhitunganatas + "/" + intpembagi + " \r\n = " + (intperhitunganatas / intpembagi) * 100 + "%"; newdataperhitungan.total = intperhitunganatas / intpembagi; } newdataperhitungan.kedekatan = newdatakedekatan; newdatakedekatan.PerhitunganKedekatan.Add(newdataperhitungan); listperhitungan.Add(newdataperhitungan); } PerhitunganKedekatan xxx = listperhitungan.OrderByDescending(obj => obj.total).First(); DataKasus newdatakasus; DataKasusDetail newdatakasusdetail; DataSolusi newdatasolusi; List <DataKasusDetail> listdatakasusdetail = new List <DataKasusDetail>(); List <DataSolusi> listdatasolusi = new List <DataSolusi>(); XPCollection <DataKasus> quergetdatakasus = new XPCollection <DataKasus>(Session); CriteriaOperator criteiagetdatakasus; criteiagetdatakasus = BinaryOperator.Parse("Oid = '" + xxx.datakasus.Oid.ToString() + "'"); quergetdatakasus.Criteria = criteiagetdatakasus; foreach (DataKasus dk in quergetdatakasus) { newdatakasus = new DataKasus(Session); newdatakasus.namapenyakit = dk.namapenyakit; newdatakasus.datapasien = this.datapasien; newdatakasus.tanggalkasus = this.tanggalkeluhan; newdatakasus.statuskasus = DataKasusStatus.Percobaan; newdatakasus.kodekasus = dk.kodekasusauto(); XPCollection <DataKeluhanDetail> querydkdetail = new XPCollection <DataKeluhanDetail>(Session); CriteriaOperator criteiadkdetail; criteiadkdetail = BinaryOperator.Parse("datakeluhan = '" + this.Oid.ToString() + "'"); querydkdetail.Criteria = criteiadkdetail; foreach (DataKeluhanDetail dkdetail in querydkdetail) { newdatakasusdetail = new DataKasusDetail(Session); newdatakasusdetail.datakasus = newdatakasus; newdatakasusdetail.datagejala = dkdetail.datagejala; newdatakasusdetail.deskripsi = dkdetail.deskripsi; newdatakasus.DataKasusDetail.Add(newdatakasusdetail); } XPCollection <DataSolusi> querysolusi = new XPCollection <DataSolusi>(Session); CriteriaOperator criteiasolusi; criteiasolusi = BinaryOperator.Parse("datakasus = '" + xxx.datakasus.Oid.ToString() + "'"); querysolusi.Criteria = criteiasolusi; foreach (DataSolusi datasolusii in querysolusi) { newdatasolusi = new DataSolusi(Session); newdatasolusi.datakasus = newdatakasus; newdatasolusi.pengobatan = datasolusii.pengobatan; newdatasolusi.kodesolusi = datasolusii.kosulauto(); newdatakasus.DataSolusi.Add(newdatasolusi); } newdatakedekatan.datakasus = xxx.datakasus; newdatakedekatan.datakasus2 = newdatakasus; newdatakedekatan.maxkedekatan = xxx.total; newdatakedekatan.Save(); newdatakasus.Save(); } }
// 开始扫描页面 private void BeginWebDownload() { // 如果正在扫描,就不扫描了。 if (!CheckTask()) return; this.Cursor = Cursors.WaitCursor; // 设置忙光标 // 取得对应的Web int web_id = int.Parse(treeList1.FocusedNode[treeOid].ToString()); XPCollection<Web> webs = new XPCollection<Web>(XpoDefault.Session, CriteriaOperator.Parse("Oid = ?", web_id)); Debug.Assert(webs.Count() == 1); Web current_web = webs[0]; // 取得对应的规则 BaseRule br = current_web.Rule; // 如果规则没有取到,就提示尚未完成,不再继续 if (br == null) { MessageBox.Show("该扫描规则还没有完成,暂不能使用!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { //开始一个线程进行工作 //m_web_thread = new Thread(new ParameterizedThreadStart(StartSingleScan)) { IsBackground = true }; //m_web_thread.Start(m_rule); m_task = Task.Factory.StartNew(() => StartSingleScan(br)); } this.Cursor = Cursors.Default; // 光标恢复正常 }
private void ProjectLineGetPreviousAction_Execute(object sender, SimpleActionExecuteEventArgs e) { try { GlobalFunction _globFunc = new GlobalFunction(); IObjectSpace _objectSpace = View is ListView?Application.CreateObjectSpace() : View.ObjectSpace; ArrayList _objectsToProcess = new ArrayList(e.SelectedObjects); DateTime now = DateTime.Now; Session _currSession = null; string _currObjectId = null; ProjectHeader _locProjectHeaderXPO = null; string _locProjectHeaderCode = null; if (this.ObjectSpace != null) { _currSession = ((XPObjectSpace)this.ObjectSpace).Session; } if (_objectsToProcess != null) { foreach (Object obj in _objectsToProcess) { ProjectLine _locProjectLineOS = (ProjectLine)_objectSpace.GetObject(obj); if (_locProjectLineOS != null) { if (_locProjectLineOS.ProjectHeader != null) { if (_locProjectLineOS.ProjectHeader.Code != null) { _locProjectHeaderCode = _locProjectLineOS.ProjectHeader.Code; } } if (_locProjectLineOS.Code != null) { _currObjectId = _locProjectLineOS.Code; ProjectLine _locProjectLineXPO = _currSession.FindObject <ProjectLine> (new GroupOperator(GroupOperatorType.And, new BinaryOperator("Code", _currObjectId))); if (_locProjectLineXPO == null) { if (_locProjectHeaderCode != null) { _locProjectHeaderXPO = _currSession.FindObject <ProjectHeader> (new GroupOperator(GroupOperatorType.And, new BinaryOperator("Code", _locProjectHeaderCode))); } if (_locProjectHeaderXPO != null) { XPCollection <ProjectLine> _numLines = new XPCollection <ProjectLine> (_currSession, new GroupOperator(GroupOperatorType.And, new BinaryOperator("ProjectHeader", _locProjectHeaderXPO)), new SortProperty("No", DevExpress.Xpo.DB.SortingDirection.Ascending)); if (_numLines != null && _numLines.Count > 0) { foreach (ProjectLine _numLine in _numLines) { if (_numLine.No == _numLines.Count()) { _locProjectLineOS.Title = _numLine.Title; _locProjectLineOS.Title2 = _numLine.Title2; _locProjectLineOS.Title3 = _numLine.Title3; } } } } } else { ErrorMessageShow("Data Project Line Not Available"); } } else { ErrorMessageShow("Data Project Line Not Available"); } } } } if (View is DetailView && ((DetailView)View).ViewEditMode == ViewEditMode.View) { _objectSpace.CommitChanges(); _objectSpace.Refresh(); } if (View is ListView) { _objectSpace.CommitChanges(); View.ObjectSpace.Refresh(); } } catch (Exception ex) { Tracing.Tracer.LogError(" BusinessObject = ProjectLine " + ex.ToString()); } }
///// <summary> ///// 下载指定的联接 ///// </summary> ///// <param name="web_oid"></param> ///// <returns></returns> //public List<Page> DownloadPageFromURL(int web_oid, bool update_all = false) //{ // var webs = from w in Session.DefaultSession.Query<Web>() // where w.Oid == web_oid // select w; // foreach (Web web in webs) // { // ListHelper.PageList = new List<Page>(); // ListHelper.GetAndSavePagesOnList(web, web.URL, update_all); // SetUnreadCount(web, ListHelper.PageList.Count); // //PageHelper.GetAllContentWithSave(); // return ListHelper.PageList; // } // return new List<Page>(); //} ///// <summary> ///// 设置当前结点未读的数量 ///// </summary> ///// <param name="web"></param> ///// <param name="unread"></param> //private void SetUnreadCount(Web web, int unread) //{ // web.Unread += unread; // web.Save(); //} /// <summary> /// 设置ID的页面为已读 /// </summary> /// <param name="oid"></param> public void SetPageHasRead(int oid) { // 先检查参数是否正确 Session session = XpoDefault.Session; Page current_page = session.GetObjectByKey<Page>(oid); if(current_page == null || current_page.ParentWeb == null) return; // 同一时间只能一个线程保存数据 System.Threading.Mutex m = new System.Threading.Mutex(false, "SaveDB"); m.WaitOne(); // 开始事务 using (UnitOfWork uow = new UnitOfWork(XpoDefault.DataLayer)) { // 设置页面已读 current_page.Is_Read = true; current_page.Save(); // 再更新web的未读数量 XPCollection<Page> list = new XPCollection<Page>(XpoDefault.Session, CriteriaOperator.Parse("Parent_ID = ? and Is_Read = ?", current_page.Parent_ID, false)); Web web = session.GetObjectByKey<Web>(current_page.Parent_ID); web.Unread = list.Count(); web.Save(); uow.CommitChanges(); } m.ReleaseMutex(); // 释放锁 }
/// 判断新取得的页面是否在新页面列表里存在 /// <summary> /// 判断新取得的页面是否在新页面列表里存在 /// </summary> /// <returns>存在,返回真,不存在,返回假</returns> private bool NewPageInExistPages(List<Page> list) { if (list.Count() <= 0) return false; List<string> filter = new List<string>(); // 生成过滤条件 foreach (Page page in list) { filter.Add(page.URL); } XPCollection<Page> pages = new XPCollection<Page>(XpoDefault.Session, new InOperator("URL", filter.ToArray())); if(pages.Count() > 0) return true; else return false; }
// 保存所有扫描出来的页面到数据库里面 protected void SaveScanResult(object sender, BaseRule.ScanCompleteEventArgs e) { // 同一时间只能一个线程保存数据 System.Threading.Mutex m = new System.Threading.Mutex(false, "SaveDB"); m.WaitOne(); using (UnitOfWork uow = new UnitOfWork(XpoDefault.DataLayer)) // 开始事务 { uow.BeginTransaction(); // 对于每个取得的新页面,判断是否已经存在,如果不存在就保存 foreach (Page page in e.pages) { XPCollection<Page> pages = new XPCollection<Page>(uow, CriteriaOperator.Parse("URL = ?", page.URL)); if (pages.Count() == 0) { Page newPage = new Page(uow) { Parent_ID = CurrentWeb.Oid, Title = page.Title, URL = page.URL }; newPage.Save(); } } uow.CommitChanges(); } m.ReleaseMutex(); }