public ActionResult FieldSetting(long formId, string type, long?id) { FieldModel field = null; if (id != null) { field = FieldDAO.GetItem((long)id); } if (field == null) { field = new FieldModel { ID = WorkLib.GetItem.NewSN(), TypeID = type, Width = (int)WorkV3.Common.FieldWidth.Half, High = (int)WorkV3.Common.FieldHeight.五行, RepeatLimit = (byte)FieldRepeatLimit.可任意報名 }; } FormModel form = FormDAO.GetItem(formId); ViewBag.UploadUrl = Golbal.UpdFileInfo.GetVPathBySiteID((long)form.SiteID, formDesignFileDir).TrimEnd('/'); ViewBag.SiteID = form.SiteID; ViewBag.MenuID = form.SourceID; ViewBag.FormID = formId; ViewBag.CustomFolder = formDesignFileDir; return(View($"Field{ type }", field)); }
public ActionResult Statistics(long siteId, long menuId, long?id, bool?isEvent) { if (id == null) { id = 0; FormModel item = FormDAO.GetItemFromSourceID(menuId); if (item != null) { id = item.ID; } } IEnumerable <FieldModel> fields = FieldDAO.GetItems((long)id); IEnumerable <FieldValue> fieldValues = FieldValueDAO.GetItemsByFormID((long)id); bool hasValues = false; foreach (var item in fields) { IEnumerable <FieldValue> values = fieldValues.Where(v => v.FieldID == item.ID); int total = values.Count(); if (total > 0) { hasValues = true; break; } } ViewBag.hasValues = hasValues; ViewBag.Values = fieldValues; ViewBag.SiteID = siteId; ViewBag.MenuID = menuId; ViewBag.IsEvent = isEvent ?? false; return(View(fields)); }
private void AddYearlyIncome(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "select", Title = "年收入", Width = (int)FieldWidth.Half, Options = "30萬以下;31~60萬;60萬~100萬;101萬~200萬;200萬以上" }); fieldIds.Add(id); }
public IList <View> Post( [FromServices] ISession session, [FromServices] UserDAO userDAO, [FromServices] TableDAO tableDAO, [FromServices] FieldDAO fieldDAO, [FromServices] ViewDAO viewDAO) { return(session.QueryOver <View>().List()); }
private void AddLodging(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "checkbox", Title = "住宿需求", Width = (int)FieldWidth.Full, OptionArray = true, Options = "不住宿;要住宿;單人房;雙人房;三人房;四人房;團體房" }); fieldIds.Add(id); }
private void AddUrgentMobile(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "input", Title = "緊急聯絡人手機", Width = (int)FieldWidth.Quarter, Fomat = true, FomatType = (int)FieldInputFormat.台灣手機號 }); fieldIds.Add(id); }
private void AddSource(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "checkbox", Title = "如何得知此訊息?", Width = (int)FieldWidth.Full, OptionArray = true, Options = "本網站;廣告;EDM;本站社群平台;親友介紹;海報;宣傳單" }); fieldIds.Add(id); }
private void AddPhoto(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "image", Title = "照片", Width = (int)FieldWidth.Half, IsDescription = true, Description = "限制上傳檔案格式 (jpg、png、gif)", Fomat = true, FomatType = (int)FieldFileFormat.圖檔 }); fieldIds.Add(id); }
private void AddMessage(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "textarea", Title = "留言", Width = (int)FieldWidth.Full, High = (int)FieldHeight.五行 }); fieldIds.Add(id); }
private void AddSatisfaction(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "radio", Title = "滿意度調查", Width = (int)FieldWidth.Full, OptionArray = true, Options = "非常滿意;滿意;普通;不滿意;非常不滿意" }); fieldIds.Add(id); }
private void AddUrgentPhone(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "input", Title = "緊急聯絡人電話", Width = (int)FieldWidth.Quarter }); fieldIds.Add(id); }
private void AddUrgentEmail(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "input", Title = "緊急聯絡人Email", Width = (int)FieldWidth.Half, Fomat = true, FomatType = (int)FieldInputFormat.Email }); fieldIds.Add(id); }
private void AddReceiveMessage(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "radio", Title = "是否願意收到本站資訊?", Width = (int)FieldWidth.Half, OptionArray = true, Options = "是;否" }); fieldIds.Add(id); }
private void AddName(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "input", Title = "名稱", Width = (int)FieldWidth.Half, Requied = true, ShowInList = true }); fieldIds.Add(id); }
private void AddDinner(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "checkbox", Title = "用餐需求", Width = (int)FieldWidth.Full, OptionArray = true, Options = "不用餐;要用餐;全素;奶蛋素;不吃牛;不吃豬;不吃羊;不吃海鮮" }); fieldIds.Add(id); }
private void AddIndustrial(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "select", Title = "產業", Width = (int)FieldWidth.Half, Options = "產業;批發╱零售╱傳直銷業;文教相關業;大眾傳播相關業;旅遊╱休閒╱運動業;一般服務業;電子資訊 ╱軟體╱半導體相關業;一般製造業;農林漁牧水電資源業;運輸物流及倉儲;政治宗教及社福相關業;金融投顧及保險業;法律╱會計╱顧問╱研發╱設計業;建築營造及不動產相關業;醫療保健及環境衛生業;礦業及土石採取業;住宿╱餐飲服務業" }); fieldIds.Add(id); }
private void AddJobTitle(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "input", Title = "職稱", Width = (int)FieldWidth.Half }); fieldIds.Add(id); }
private void AddProfession(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "select", Title = "職業", Width = (int)FieldWidth.Half, Options = "行政\\秘書;執行\\管理;金融服務;建築;法律;醫師;軍人\\民政服務;零售;退休;行銷\\市場;學生;教師;技士工程;旅遊\\飯店;非營利義工" }); fieldIds.Add(id); }
private void AddDegree(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "select", Title = "學歷", Width = (int)FieldWidth.Half, Options = "小學;國中;高中\\高職;大學\\技術學院;碩士;博士" }); fieldIds.Add(id); }
private void AddMarital(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "radio", Title = "婚姻狀況", Width = (int)FieldWidth.Half, OptionArray = true, Options = "未婚;已婚;離婚;喪偶" }); fieldIds.Add(id); }
private void AddAddress(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "address", Title = "地址", Width = (int)FieldWidth.Full }); fieldIds.Add(id); }
private void AddSpeciality(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "checkbox", Title = "專長", Width = (int)FieldWidth.Full, OptionArray = true, Options = "" }); fieldIds.Add(id); }
private void AddMobile(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, DefaultType = (int)FieldDefaultType.電話, TypeID = "input", Title = "手機", Width = (int)FieldWidth.Quarter, Requied = true, Fomat = true, FomatType = (int)FieldInputFormat.台灣手機號, ShowInList = true }); fieldIds.Add(id); }
private void AddEmail(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, DefaultType = (int)FieldDefaultType.Email, TypeID = "input", Title = "Email", Width = (int)FieldWidth.Half, Requied = true, Fomat = true, FomatType = (int)FieldInputFormat.Email, ShowInList = true }); fieldIds.Add(id); }
private void AddBirthday(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "datetime", Title = "出生年月日", Width = (int)FieldWidth.Quarter, Fomat = true, FomatType = (int)FieldDateFormat.西元日期, IsDescription = true, Description = "YYYY/MM/DD" }); fieldIds.Add(id); }
public ActionResult FieldDesignViewAsync(string ids) { IEnumerable <long> idList = ids.Split(',').Select(item => long.Parse(item)); IEnumerable <FieldModel> fields = FieldDAO.GetItems(idList); FormModel form = FormDAO.GetItem(fields.First().ParentID); ViewBag.UploadDesignUrl = Golbal.UpdFileInfo.GetVPathBySiteID((long)form.SiteID, formDesignFileDir).TrimEnd('/'); return(View("FieldDesignView", fields)); }
public ActionResult FieldCopy(long id) { FieldModel field = FieldDAO.GetItem(id); field.ID = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(field); FormModel form = FormDAO.GetItem(field.ParentID); ViewBag.UploadDesignUrl = Golbal.UpdFileInfo.GetVPathBySiteID((long)form.SiteID, formDesignFileDir).TrimEnd('/'); return(View("FieldDesignView", new FieldModel[] { field })); }
private void AddPartner(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "radio", Title = "是否會攜伴參加?", Width = (int)FieldWidth.Quarter, OptionArray = true, Options = "是;否" }); fieldIds.Add(id); id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, TypeID = "input", Title = "如果攜伴,會帶幾人?", Width = (int)FieldWidth.Quarter, Fomat = true, FomatType = (int)FieldInputFormat.數字 }); fieldIds.Add(id); }
private void AddNameSex(long formId, List <long> fieldIds) { long id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, DefaultType = (int)FieldDefaultType.姓名, TypeID = "input", Title = "姓名", Width = (int)FieldWidth.Quarter, Requied = true, ShowInList = true }); fieldIds.Add(id); id = WorkLib.GetItem.NewSN(); FieldDAO.SetItem(new FieldModel { ID = id, ParentID = formId, DefaultType = (int)FieldDefaultType.性別, TypeID = "radio", Width = (int)FieldWidth.Quarter, OptionArray = true, Options = "先生;女士", Requied = true }); fieldIds.Add(id); }
public ActionResult List(long siteId, long menuId, int?index, FormItemSearch search) { FormModel form = FormDAO.GetItemFromSourceID(menuId); if (Request.HttpMethod == "GET") { if (index == null) { Utility.ClearSearchValue(); } else { FormItemSearch prevSearch = Utility.GetSearchValue <FormItemSearch>(); if (prevSearch != null) { search = prevSearch; } } } else if (Request.HttpMethod == "POST") { Utility.SetSearchValue(search); } search.FormID = form.ID; ViewBag.Search = search; Pagination pagination = new Pagination { PageIndex = index ?? 1, PageSize = 20 }; int totalRecord; IEnumerable <FormItem> items = FormItemDAO.GetItems(search, pagination.PageSize, pagination.PageIndex, out totalRecord); pagination.TotalRecord = totalRecord; ViewBag.Pagination = pagination; ViewBag.Form = form; ViewBag.Fields = FieldDAO.GetItems(search.FormID).Where(f => f.ShowInList).ToList(); ViewBag.SiteID = siteId; ViewBag.MenuID = menuId; ViewBag.UploadUrl = Golbal.UpdFileInfo.GetVPathByMenuID(siteId, menuId).TrimEnd('/') + "/"; return(View(items)); }
public void InitializeKingdom(int mapId, int kingdomId) { int actMapSize = new FieldDAO().GetByMapId(mapId).Count; actMapSize /= 9; int x=0; int y=0; int xDone = 0; int yDone = 0; int xDir = 1; int yDir = 1; int xSize = 1; int ySize = 1; bool xMod = true; for (int i = 1; i < actMapSize+1; i++) { if (xMod) { x += xDir*3; xDone++; if (xDone == xSize) { xDir *= -1; xSize++; xDone = 0; xMod = false; } } else { y += yDir*3; yDone++; if (yDone == ySize) { yDir *= -1; ySize++; yDone = 0; xMod = true; } } } String[] area = {"Pola", "Dolina", "Wzgórza", "Łąki", "Las", "Mokradła", "Góry"}; String[] describe = {"Mrocznych","Wichrowych", "Wesołych", "Wielkich", "Małych", "Smutnych", "Krwawych", "Czarnych", "Kolorowych", "Białych", "Żelaznych", "Stalowych", "Miedzianych", "Srebrnych", "Złotych", "Diamentowych"}; String[] thing = {"Ostrzy", "Kucyków","Teściochych","Wilków","Wron","Szkieletów","Noży", "Chłopów", "Włóczni","Mieczy","Bibliotekarzy", "Krów"}; Random rand = new Random(); for (int i = x - 1; i < x + 2; i++) { for (int j = y - 1; j < y + 2; j++) { System.Text.StringBuilder name = new System.Text.StringBuilder(); name.Append(area[rand.Next(area.Length)]); name.Append(" "); name.Append(describe[rand.Next(describe.Length)]); name.Append(" "); name.Append(thing[rand.Next(thing.Length)]); Field field = new Field(); field.FieldX = i; field.FieldY = j; if(i==x && j==y) field.KingdomId = kingdomId; field.MapId = mapId; field.FieldName = name.ToString(); new FieldDAO().Add(field); } } // 1: wyciągam z bazy wszystkie pola należące do danej mapy // 2: wyciagam rozmiar // 3: wyliczam gzie powinien sie znalesc srodek nowego krolestwa(dodawane po spirali) // 4: dodaje nowe krolestwo o rozmiarze i i dodaje obwodke }
public MapModel GetMapModel() { User user = CurrentUser.Current; Kingdom userKingdom = new KingdomDAO().GetByUserId(user.UserId); IList<Kingdom> kingdoms = new KingdomDAO().GetByMapId(userKingdom.MapId); List<Owner> players = new List<Owner>(); Random random = new Random(); foreach (Kingdom k in kingdoms) { if (k.KingdomId == userKingdom.KingdomId) { players.Add(new Owner(userKingdom.KingdomId, userKingdom.KingdomName, "#FF0000")); } else { players.Add(new Owner(k.KingdomId, k.KingdomName, String.Format("#{0:X6}", random.Next(0x1000000)))); } } List<TileInfo> tiles = new List<TileInfo>(); IList<Field> fields = new FieldDAO().GetByMapId(userKingdom.MapId); foreach (Field field in fields) { IList<Unit> units = new UnitDAO().GetFromArea(field.MapId, field.FieldX, field.FieldY, 1, 1); int unitCount = 0; foreach (Unit u in units) { unitCount += u.Count; } tiles.Add(new TileInfo(field.FieldId, field.FieldX, field.FieldY, field.FieldName, field.KingdomId, unitCount)); } //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Orders need to be taken away from the database too !!!!!!!!!!!!!!!!!!1 List<OrderInfo> orders = new List<OrderInfo>(); IList<Order> ordersDB = new OrderDAO().GetByKingdomEpoch(userKingdom.KingdomId, new EpochDAO().GetCurrentByMapId(userKingdom.MapId).EpochId); Dictionary<int,UnitType> unitTypes = new Dictionary<int,UnitType>(); IList<UnitType> unitTypesAll = new UnitTypeDAO().GetAll(); foreach (UnitType ut in unitTypesAll) { unitTypes.Add(ut.UnitTypeId,ut); } foreach (Order o in ordersDB) { if (o.OrderTypeName.Equals("Buy")) { orders.Add(new OrderInfo(o.OrderTypeName, o.FieldId, o.FieldIdDestination, o.Count, unitTypes[o.UnitTypeId].UnitTypeCost * o.Count)); } else { orders.Add(new OrderInfo(o.OrderTypeName, o.FieldId, o.FieldIdDestination, o.Count, 0)); } } //orders.Add(new OrderInfo("Defend",1,1,5,0)); //int rice = 1000; //List<Owner> players = new List<Owner>(); //Owner owner1 = new Owner(1, "Moose", "#ff0000"); //Owner owner2 = new Owner(2, "Lucas", "#00ff00"); //players.Add(owner1); //players.Add(owner2); //List<TileInfo> tiles = new List<TileInfo>(); //tiles.Add(new TileInfo(1,1,1,"Krwawe wzgórza", owner1.playerId, 5)); //tiles.Add(new TileInfo(2,2,1,"MooseVille", owner1.playerId, 5)); //tiles.Add(new TileInfo(3,2,2,"Grunwald", owner1.playerId, 5)); //tiles.Add(new TileInfo(4,1,2,"Bździochy dolne", null, 5)); //tiles.Add(new TileInfo(5,3,4,"Cukierkowa Dolina", owner2.playerId, 10)); //tiles.Add(new TileInfo(6,5,5,"Wilczy Szaniec", owner2.playerId, 10)); //List<OrderInfo> orders = new List<OrderInfo>(); //orders.Add(new OrderInfo("Defend",1,1,5,0)); return new MapModel(userKingdom.KingdomResources, tiles, players, orders); }
public String Update(int MapId) { IList<Field> fields = new FieldDAO().GetByMapId(MapId); Epoch epoch = new EpochDAO().GetCurrentByMapId(MapId); // wypuszczenie wojsk z pól IList<Order> orders = new OrderDAO().GetByEpoch(epoch.EpochId); foreach (Order o in orders) { if (o.OrderTypeName.Equals("Move") || o.OrderTypeName.Equals("Defend")) { Field f = new FieldDAO().GetById(o.FieldId); Dictionary<int, int> unitModifier = new Dictionary<int, int>(); unitModifier[o.UnitTypeId] = -o.Count; UnitUpdate(f.KingdomId, f, unitModifier); } } Dictionary<int,UnitType> unitTypes = new Dictionary<int,UnitType>(); foreach(UnitType ut in new UnitTypeDAO().GetAll()) { unitTypes.Add(ut.UnitTypeId,ut); } // rozpatrywanie rozkazów foreach (Field field in fields) { IList<Order> ordersAll = new OrderDAO().GetByFieldEpoch(epoch.EpochId, field.FieldId); if (ordersAll.Count > 0) { IList<Order> orderMove = new List<Order>(); IList<Order> orderDefend = new List<Order>(); IList<Order> orderBuy = new List<Order>(); IList<Order> orderGather = new List<Order>(); // Podział rozkazów według rodzaju foreach (Order order in ordersAll) { if (order.OrderTypeName.Equals("Move")) { orderMove.Add(order); } else if (order.OrderTypeName.Equals("Defend")) { orderDefend.Add(order); } else if (order.OrderTypeName.Equals("Buy")) { orderBuy.Add(order); } else if (order.OrderTypeName.Equals("Gather")) { orderGather.Add(order); } } // królestwo do którego naley pole na początku tury Kingdom startKingdom = new KingdomDAO().GetInfoById(field.KingdomId); if (startKingdom.KingdomId!=0) { // zbieranie ryżu int collectedRice = 0; foreach (Order o in orderGather) { collectedRice += o.Count * RICE_BY_ONE_MAN; } startKingdom.KingdomResources += collectedRice; // rekrutacja Dictionary<int, int> unitModifier = new Dictionary<int, int>(); int toPay = 0; foreach (Order o in orderBuy) { if (unitModifier.ContainsKey(o.UnitTypeId)) { unitModifier[o.UnitTypeId] += o.Count; } else { unitModifier[o.UnitTypeId] = o.Count; } toPay += o.Count * unitTypes[o.UnitTypeId].UnitTypeCost; } UnitUpdate(startKingdom.KingdomId, field, unitModifier); startKingdom.KingdomResources -= toPay; new KingdomDAO().Update(startKingdom); } // af[kingdom][unitType] = count Dictionary<int, Dictionary<int, int>> attackForces = new Dictionary<int, Dictionary<int, int>>(); foreach (Order o in orderDefend.Concat(orderMove)) { if (!attackForces.ContainsKey(o.KingdomId)) { attackForces[o.KingdomId] = new Dictionary<int, int>(); } if (attackForces[o.KingdomId].ContainsKey(o.UnitTypeId)) { attackForces[o.KingdomId][o.UnitTypeId] += o.Count; } else { attackForces[o.KingdomId][o.UnitTypeId] = o.Count; } } int winner = Battle(attackForces); if (winner == 0) { // nic sie nie dzieje // wszyscy bioracy udzial w walkach zostali wycieci w pień, więc nie ma kto wrócić na pole } else if (winner == startKingdom.KingdomId) { UnitUpdate(startKingdom.KingdomId, field, attackForces[startKingdom.KingdomId]); } else { field.KingdomId = winner; new FieldDAO().Update(field); UnitUpdate(winner, field, attackForces[winner]); } } } new EpochDAO().Add(MapId); this.DiplomacyStatusUpdate(MapId,fields); return "Hello world"; // 1: wyciągnąc z bazy wszystkie pola danej mapy // 2: Dla każdego pola wyciągnąc jego rozkazy // 3: Rozdzielić rozkazy według typu // 4: Rozpatrzyć zbieranie ryżu // 5: Rozpatrzyc rekrutacje // 6: Rozpatrzec ataki i obrone }