Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public IList <View> Post(
     [FromServices] ISession session,
     [FromServices] UserDAO userDAO,
     [FromServices] TableDAO tableDAO,
     [FromServices] FieldDAO fieldDAO,
     [FromServices] ViewDAO viewDAO)
 {
     return(session.QueryOver <View>().List());
 }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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);
        }
Exemple #21
0
        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);
        }
Exemple #22
0
        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);
        }
Exemple #23
0
        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);
        }
Exemple #24
0
        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);
        }
Exemple #25
0
        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);
        }
Exemple #26
0
        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));
        }
Exemple #27
0
        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 }));
        }
Exemple #28
0
        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);
        }
Exemple #29
0
        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);
        }
Exemple #30
0
        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));
        }
Exemple #31
0
        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
        }
Exemple #32
0
	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);
	}
Exemple #33
0
        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
        }