private bag CreateBagNode(DirectedReference reference, key keyNode, string cascade, collectionFetchMode colFetchMode, string lazyString, bool inverse) { var lazy = (collectionLazy)Enum.Parse(typeof(collectionLazy), lazyString.ToString().Replace("_", ""), true); bag bagNode = new bag(); bagNode.name = reference.FromName; bagNode.key = keyNode; bagNode.cascade = cascade == "none" ? null : cascade; bagNode.inverse = inverse; bagNode.fetchSpecified = colFetchMode != collectionFetchMode.select; bagNode.fetch = colFetchMode; bagNode.lazySpecified = lazy != collectionLazy.@true; bagNode.lazy = (collectionLazy)Enum.Parse(typeof(collectionLazy), lazy.ToString().Replace("_", ""), true); var sqlWhereClause = NHCollections.GetSqlWhereClause(reference); if (string.IsNullOrEmpty(sqlWhereClause) == false) { bagNode.where = sqlWhereClause; } return(bagNode); }
/// <summary> /// Gets the ManyToAny of the Bag if it exists. /// </summary> /// <param name="theBag"></param> /// <returns></returns> public static manytoany ManyToAny(this bag theBag) { if (theBag.Item != null && theBag.Item is manytoany) { return((manytoany)theBag.Item); } return(null); }
/// <summary> /// Gets the CompositeElement of the set if it exists. /// </summary> /// <param name="theBag"></param> /// <returns></returns> public static compositeelement CompositeElement(this bag theBag) { if (theBag.Item != null && theBag.Item is compositeelement) { return((compositeelement)theBag.Item); } return(null); }
/// <summary> /// Gets the OneToMany of the Bag if it exists. /// </summary> /// <param name="theBag"></param> /// <returns></returns> public static onetomany OneToMany(this bag theBag) { if (theBag.Item != null && theBag.Item is onetomany) { return((onetomany)theBag.Item); } return(null); }
/// <summary> /// Gets the Element of the Bag if it exists. /// </summary> /// <param name="theBag"></param> /// <returns></returns> public static element Element(this bag theBag) { if (theBag.Item != null && theBag.Item is element) { return((element)theBag.Item); } return(null); }
static void Main(string[] args) { long capacity = long.Parse(Console.ReadLine()); var input = Console.ReadLine().Split(' '); var bag = new bag(capacity); for (int i = 0; i < input.Length; i += 2) { string key = input[i]; long value = long.Parse(input[i + 1]); InsertItem(key, value, bag); } Console.WriteLine(bag.ToString()); }
private static void InsertItem(string key, long value, bag bag) { if (key.Length == 3) { cash cash = new cash(key, value); bag.AddCashItem(cash); } else if (key.Length >= 4 && key.ToLower().EndsWith("gem")) { gem gem = new gem(key, value); bag.AddGemItem(gem); } else if (key.ToLower().Equals("gold")) { gold gold = new gold(key, value); bag.AddGoldItem(gold); } }
// Use this for initialization void Start() { _bagAbsorb = gameObject.GetComponent <bagAbsorb>(); _bag = gameObject.GetComponent <bag>(); }
//[HttpGet] //public ActionResult Add() //{ // ViewBag.Ifboss = Session["Ifboss"].ToString(); // ViewBag.Msid = Session["Msid"].ToString(); // bag col = new bag(); // return View(col); //} //[HttpPost] public ActionResult add(bag col, string sysflag, int?page, string orderdata, string orderdata1) { ModelState.Clear(); page = ((!page.HasValue || page < 1) ? 1 : page); ViewBag.page = page; if (string.IsNullOrWhiteSpace(orderdata)) { orderdata = "bgid"; } if (string.IsNullOrWhiteSpace(orderdata1)) { orderdata1 = "desc"; } ViewBag.orderdata = orderdata; ViewBag.orderdata1 = orderdata1; string qbgtitle = "", qbgid = ""; if (!string.IsNullOrWhiteSpace(Request["qbgtitle"])) { qbgtitle = Request["qbgtitle"].Trim(); ViewBag.qbgtitle = qbgtitle; } if (!string.IsNullOrWhiteSpace(Request["qbgid"])) { qbgid = Request["qbgid"].Trim(); ViewBag.qbgid = qbgid; } if (sysflag != "A") { bag newcol = new bag(); return(View(newcol)); } else { if (!ModelState.IsValid) { return(View(col)); } else { Aitag.Models.NDcommon dbobj = new Aitag.Models.NDcommon(); /* * SqlConnection conn = dbobj.get_conn("Aitag_DBContext"); * SqlDataReader dr; * SqlCommand sqlsmd = new SqlCommand(); * sqlsmd.Connection = conn; * string sqlstr = "select * from bag where 1<>1"; * sqlsmd.CommandText = sqlstr; * dr = sqlsmd.ExecuteReader(); * * if (dr.Read()) * { * * ModelState.AddModelError("", "no"); * return View(col); * } * dr.Close(); * dr.Dispose(); * sqlsmd.Dispose(); * conn.Close(); * conn.Dispose(); */ col.comid = Session["comid"].ToString(); col.bmodid = Session["tempid"].ToString(); //col.badddate = DateTime.Now; col.bmoddate = DateTime.Now; using (Aitag_DBContext con = new Aitag_DBContext()) { con.bag.Add(col); con.SaveChanges(); //系統LOG檔 //================================================= // SqlConnection sysconn = dbobj.get_conn("Aitag_DBContext"); string sysrealsid = Request["sysrealsid"].ToString(); string syssubname = dbobj.get_sysmenuname(sysconn, sysrealsid, "2"); string sysnote = "包裝名稱:" + col.bgtitle; dbobj.systemlog(sysconn, syssubname, sysnote, Session["tempid"].ToString(), Session["sldate"].ToString(), Session["sfip"].ToString(), sysflag); sysconn.Close(); sysconn.Dispose(); //================================================= } string tmpform = ""; tmpform = "<body onload=qfr1.submit();>"; tmpform += "<form name='qfr1' action='/bag/List' method='post'>"; tmpform += "<input type=hidden name='sysflag' id='sysflag' value='" + sysflag + "'>"; tmpform += "<input type=hidden name='page' id='page' value='" + page + "'>"; tmpform += "<input type=hidden name='orderdata' id='orderdata' value='" + orderdata + "'>"; tmpform += "<input type=hidden name='orderdata1' id='orderdata1' value='" + orderdata1 + "'>"; tmpform += "<input type=hidden id='qbgtitle' name='qbgtitle' value='" + qbgtitle + "'>"; tmpform += "<input type=hidden id='qbgid' name='qbgid' value='" + qbgid + "'>"; tmpform += "</form>"; tmpform += "</body>"; return(new ContentResult() { Content = @"" + tmpform }); // return RedirectToAction("List"); } } }
public ActionResult Edit(bag chks, string sysflag, int?page, string orderdata, string orderdata1) { ModelState.Clear(); page = ((!page.HasValue || page < 1) ? 1 : page); ViewBag.page = page; if (string.IsNullOrWhiteSpace(orderdata)) { orderdata = "bgid"; } if (string.IsNullOrWhiteSpace(orderdata1)) { orderdata1 = "desc"; } ViewBag.orderdata = orderdata; ViewBag.orderdata1 = orderdata1; string qbgtitle = "", qbgid = ""; if (!string.IsNullOrWhiteSpace(Request["qbgtitle"])) { qbgtitle = Request["qbgtitle"].Trim(); ViewBag.qbgtitle = qbgtitle; } if (!string.IsNullOrWhiteSpace(Request["qbgid"])) { qbgid = Request["qbgid"].Trim(); ViewBag.qbgid = qbgid; } if (sysflag != "E") { using (Aitag_DBContext con = new Aitag_DBContext()) { var data = con.bag.Where(r => r.bgid == chks.bgid).FirstOrDefault(); bag ebags = con.bag.Find(chks.bgid); if (ebags == null) { return(HttpNotFound()); } return(View(ebags)); } } else { if (!ModelState.IsValid) { return(View(chks)); } else { //string oldmsid = Request["oldmsid"]; using (Aitag_DBContext con = new Aitag_DBContext()) { NDcommon dbobj = new NDcommon(); //chks.comid = Session["comid"].ToString(); chks.bmodid = Session["tempid"].ToString(); chks.bmoddate = DateTime.Now; con.Entry(chks).State = EntityState.Modified; con.SaveChanges(); //系統LOG檔 //================================================= // SqlConnection sysconn = dbobj.get_conn("Aitag_DBContext"); string sysrealsid = Request["sysrealsid"].ToString(); string syssubname = dbobj.get_sysmenuname(sysconn, sysrealsid, "2"); string sysnote = "包裝名稱:" + chks.bgtitle; dbobj.systemlog(sysconn, syssubname, sysnote, Session["tempid"].ToString(), Session["sldate"].ToString(), Session["sfip"].ToString(), sysflag); sysconn.Close(); sysconn.Dispose(); //================================================= string tmpform = ""; tmpform = "<body onload=qfr1.submit();>"; tmpform += "<form name='qfr1' action='/bag/List' method='post'>"; tmpform += "<input type=hidden name='sysflag' id='sysflag' value='" + sysflag + "'>"; tmpform += "<input type=hidden name='page' id='page' value='" + page + "'>"; tmpform += "<input type=hidden name='orderdata' id='orderdata' value='" + orderdata + "'>"; tmpform += "<input type=hidden name='orderdata1' id='orderdata1' value='" + orderdata1 + "'>"; tmpform += "<input type=hidden id='qbgtitle' name='qbgtitle' value='" + qbgtitle + "'>"; tmpform += "<input type=hidden id='qbgid' name='qbgid' value='" + qbgid + "'>"; tmpform += "</form>"; tmpform += "</body>"; return(new ContentResult() { Content = @"" + tmpform }); //return RedirectToAction("List"); } } } }
private void ProcessManyToManyReference( Entity entity, DirectedReference directedReference, Action <object> addItem, Dictionary <ITable, int> manyToManySameTableProcessingCounts, string collectionCascade, string lazy, string orderByClause, bool inverse) { if (directedReference.FromEndEnabled == false) { return; } ITable referenceMappedTable = directedReference.Reference.MappedTable(); ITable fromPrimaryMappedTable = EntityMapper.GetPrimaryTable(entity); ITable toPrimaryMappedTable = EntityMapper.GetPrimaryTable(directedReference.ToEntity); Cardinality cardinalityPrimary; Cardinality cardinalityForeign; IKey mainKey; IKey associationKey; ITable associationTable = entity.GetAssociationTable(directedReference.ToEntity, out cardinalityPrimary, out cardinalityForeign, out mainKey, out associationKey); key keyNode = new key(); List <IColumn> fromInPrimaryKey = new List <IColumn>(); List <IColumn> toInPrimaryKey = new List <IColumn>(); if (fromPrimaryMappedTable == toPrimaryMappedTable) { // This many-to-many relationship is to the same table if (manyToManySameTableProcessingCounts.ContainsKey(toPrimaryMappedTable)) { int index = manyToManySameTableProcessingCounts[toPrimaryMappedTable]; index++; fromInPrimaryKey.AddRange(referenceMappedTable.Relationships.Where(t => t.PrimaryTable == fromPrimaryMappedTable).ElementAt(index).PrimaryKey.Columns); toInPrimaryKey.AddRange(referenceMappedTable.Relationships.Where(t => t.PrimaryTable == toPrimaryMappedTable).ElementAt(index).ForeignKey.Columns); manyToManySameTableProcessingCounts[toPrimaryMappedTable] = index; } else { fromInPrimaryKey.AddRange(referenceMappedTable.Relationships.Where(t => t.PrimaryTable == fromPrimaryMappedTable).ElementAt(0).PrimaryKey.Columns); toInPrimaryKey.AddRange(referenceMappedTable.Relationships.Where(t => t.PrimaryTable == toPrimaryMappedTable).ElementAt(0).ForeignKey.Columns); manyToManySameTableProcessingCounts.Add(toPrimaryMappedTable, 0); } } else { foreach (var coll in referenceMappedTable.Relationships.Where(t => t.PrimaryTable == fromPrimaryMappedTable).Select(r => r.ForeignKey.Columns)) { foreach (var c in coll) { fromInPrimaryKey.Add(c); } } foreach (var coll in referenceMappedTable.Relationships.Where(t => t.PrimaryTable == toPrimaryMappedTable).Select(r => r.ForeignKey.Columns)) { foreach (var c in coll) { toInPrimaryKey.Add(c); } } } if (fromInPrimaryKey.Count() == 1) { keyNode.column1 = fromInPrimaryKey.First().Name.BackTick(); } else { foreach (var columnNode in GetColumnNodes(fromInPrimaryKey)) { keyNode.AddColumn(columnNode); } } manytomany manyToManyNode = new manytomany(); manyToManyNode.@class = directedReference.ToEntity.Name; if (toInPrimaryKey.Count() == 1) { manyToManyNode.column = toInPrimaryKey.First().Name.BackTick(); } else { foreach (var columnNode in GetColumnNodes(toInPrimaryKey)) { keyNode.AddColumn(columnNode); } } collectionFetchMode collFetchMode; if (directedReference.Entity1IsFromEnd) { collFetchMode = (collectionFetchMode)Enum.Parse(typeof(collectionFetchMode), directedReference.Reference.GetReferenceEnd1CollectionFetchMode().ToString(), true); } else { collFetchMode = (collectionFetchMode)Enum.Parse(typeof(collectionFetchMode), directedReference.Reference.GetReferenceEnd2CollectionFetchMode().ToString(), true); } AssociationType type = NHCollections.GetAssociationType(directedReference); switch (type) { case AssociationType.None: Log.WarnFormat("No association type was set on reference {0} for the end {1}. This is usually an error.", directedReference.Reference.Name, directedReference.Entity1IsFromEnd ? "One" : "Two"); return; case AssociationType.Set: set setNode = CreateSetNode(directedReference, keyNode, collectionCascade, collFetchMode, lazy, inverse); setNode.table = referenceMappedTable.Name.BackTick(); setNode.Item = manyToManyNode; if (orderByClause.Length > 0) { setNode.orderby = orderByClause; } addItem(setNode); break; case AssociationType.Bag: bag bagNode = CreateBagNode(directedReference, keyNode, collectionCascade, collFetchMode, lazy, inverse); bagNode.table = referenceMappedTable.Name.BackTick(); bagNode.Item = manyToManyNode; if (orderByClause.Length > 0) { bagNode.orderby = orderByClause; } addItem(bagNode); break; case AssociationType.Map: map mapNode = CreateMapNode(directedReference, keyNode, collectionCascade, collFetchMode, lazy, inverse); mapNode.table = referenceMappedTable.Name.BackTick(); mapNode.Item = new index { column1 = NHCollections.GetIndexColumnName(directedReference), type = NHCollections.GetIndexColumnTypeName(directedReference, toPrimaryMappedTable /*fromPrimaryMappedTable*/) }; mapNode.Item1 = manyToManyNode; if (orderByClause.Length > 0) { mapNode.orderby = orderByClause; } addItem(mapNode); break; case AssociationType.List: list listNode = CreateListNode(directedReference, keyNode, collectionCascade, collFetchMode, lazy, inverse); listNode.table = referenceMappedTable.Name.BackTick(); listNode.Item = new index { column1 = NHCollections.GetIndexColumnName(directedReference), }; listNode.Item1 = manyToManyNode; if (orderByClause.Length > 0) { listNode.orderby = orderByClause; } addItem(listNode); break; // case AssociationType.IDBag: // throw new NotImplementedException( // string.Format("Have not implemented {0} association type for Many To Many relationships", type)); default: throw new NotImplementedException("AssociationType not handled yet: " + type.ToString()); } }