public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            var txt_acc = context.Request.Form["txt_acc"];
            var txt_pwd = context.Request.Form["txt_pwd"];
            var txt_Vallentity = context.Request.Form["txt_Vallentity"];
            if (txt_Vallentity != context.Session["Catcha"].ToString())
            {
                context.Response.Write("Valerror");
                return;
            }

            Member m = new Member();
            m.MAccount = txt_acc;
            m.MPassword = txt_pwd;
            MemberData md = new MemberData();
            var message = md.Ismember(m);
            if (message[0] == "Find")
            {
                context.Session["Member"] = message[1];
                context.Session["MName"] = message[2];
                context.Response.Write("OK");
            }
            else
            {
                context.Session["Member"] = "";
                context.Response.Write("NO");
            }
        }
        public ActionResult CheckIsMemberName(string str)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            MemberData md = new MemberData();
            if (str != "")
            {
                var data = md.Get().ToList().Where(a => a.uName == str && (a.FacebookId == "" && a.GoogleId == ""));
                if (data.Count() > 0)
                {
                    dic.Add("success", true);
                    dic.Add("msg", "OK");
                }
                else
                {
                    dic.Add("success", false);
                    dic.Add("msg", "查無此姓名");
                }

            }
            else
            {
                dic.Add("success", false);
                dic.Add("msg", "Error");
            }

            return Json(dic);
        }
Example #3
0
 public DockItem(MemberData.Dock.DockInfo dat)
 {
     Name = dat.Name;
     Finish = dat.Finish;
     Vacant = dat.Vacant;
     Order = dat.Order;
 }
Example #4
0
        /// <summary>
        /// parse member element (type, property, method, field)
        /// from the given elementName
        /// </summary>
        /// <param name="elementName"></param>
        /// <returns></returns>
        internal static MemberData ParseMemberElement(string elementName)
        {
            MemberData memberData = new MemberData();
            char typeId = elementName[0];
            string memberElement = GetMemberElement(elementName);
            var typeMember = GetTypeAndMemberName(memberElement);

            switch(typeId)
            {
                case 'F' :
                    memberData.type = Type.Field;                    
                    memberData.TypeName = typeMember.Item1;
                    memberData.MemberName = typeMember.Item2;
                    break;

                case 'M' :
                    memberData.type = Type.Method;        
                    memberData.TypeName = typeMember.Item1;
                    memberData.MemberName = typeMember.Item2;
                    break;
                case 'P' :
                    memberData.type = Type.Property;        
                    memberData.TypeName = typeMember.Item1;
                    memberData.MemberName = typeMember.Item2;
                    break;
                case 'T' :
                    memberData.type = Type.Type;
                    memberData.TypeName = memberElement;
                    memberData.MemberName = "";
                    break;
                default :
                    break;
            }
            return memberData;
        }
Example #5
0
 /// <summary>
 /// 資源情報を更新
 /// </summary>
 /// <param name="data"></param>
 public void Update(MemberData.Material data)
 {
     if(InvokeRequired)
        BeginInvoke((MethodInvoker)(() => updateMaterialView(data)));
     else
         updateMaterialView(data);
 }
Example #6
0
        void updateMaterialView(MemberData.Material data)
        {
            lblFuel.Text = data.Fuel.ToString();
            lblBullet.Text = data.Ammo.ToString();
            lblSteel.Text = data.Steel.ToString();
            lblBauxite.Text = data.Bauxite.ToString();

            lblFastRepair.Text = data.FastRepair.ToString();
            lblFastBuild.Text = data.FastBuild.ToString();
            lblDevelop.Text = data.Developer.ToString();
            lblUpdater.Text = data.Updater.ToString();
        }
Example #7
0
        private static object Union(MemberData thisMembers, MemberData thatMembers)
        {
            if (thatMembers == null)
            {
                return(thisMembers);
            }

            if (thisMembers == null)
            {
                return(thatMembers.Clone());
            }

            thisMembers.Indexers = ArrayUnion(thisMembers.Indexers, thatMembers.Indexers);

            thisMembers.Constructors = ParameterUnion(thisMembers.Constructors, thatMembers.Constructors);

            thisMembers.Events      = DictionaryUnion(thisMembers.Events, thatMembers.Events);
            thisMembers.Fields      = DictionaryUnion(thisMembers.Fields, thatMembers.Fields);
            thisMembers.Methods     = DictionaryUnion(thisMembers.Methods, thatMembers.Methods, Union);
            thisMembers.NestedTypes = DictionaryUnion(thisMembers.NestedTypes, thatMembers.NestedTypes, Union);
            thisMembers.Properties  = DictionaryUnion(thisMembers.Properties, thatMembers.Properties, Union);

            return(thisMembers);
        }
Example #8
0
        /// <summary>
        /// 會員登入
        /// </summary>
        /// <param name="memberInfo">memberInfo</param>
        /// <returns>Tuple(string, string)</returns>
        public async Task <Tuple <string, string> > Login(MemberInfoDto memberInfo)
        {
            try
            {
                if (string.IsNullOrEmpty(memberInfo.Email) || string.IsNullOrEmpty(memberInfo.Password))
                {
                    return(Tuple.Create(string.Empty, "信箱或密碼無效."));
                }

                MemberData memberData = await this.memberRepository.GetMemebrDataByEmail(memberInfo.Email);

                if (memberData == null)
                {
                    return(Tuple.Create(string.Empty, "無法根據信箱查詢到相關會員."));
                }

                if (!Utility.DecryptAES(memberData.Password).Equals(memberInfo.Password))
                {
                    return(Tuple.Create(string.Empty, "密碼驗證失敗."));
                }

                bool updateMemebrLoginDateResult = await this.memberRepository.UpdateMemebrLoginDate(memberData.MemberID, DateTime.Now);

                if (!updateMemebrLoginDateResult)
                {
                    return(Tuple.Create(string.Empty, "會員登入失敗."));
                }

                return(Tuple.Create(memberData.MemberID, string.Empty));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Login Error >>> Email:{memberInfo.Email} Password:{memberInfo.Password}\n{ex}");
                return(Tuple.Create(string.Empty, "會員登入發生錯誤."));
            }
        }
        public PopupCheckCustomer()
        {
            try
            {
                InitializeComponent();
                item          = (CheckInsureCarData)DataCommon.Get("CHECK_INSURE_CAR_EDIT");
                txtDate.Text  = item.CREATE_DATE.ToString();
                txtEMail.Text = item.CUSTOMER_EMAIL;
                txtName.Text  = item.CUSTOMER_NAME;
                txtTel.Text   = item.CUSTOMER_TEL;

                member = (MemberData)DataCommon.Get("DATA.MEMBER");
                if (member.ROLE_CODE.ToUpper().Equals("Admin"))
                {
                    btnCancel.Visibility = System.Windows.Visibility.Hidden;
                    btnSave.Visibility   = System.Windows.Visibility.Hidden;
                    btnPing.Visibility   = System.Windows.Visibility.Visible;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Example #10
0
        public static PortView GetOutputPort(MemberData inputValue, UGraphView graphView)
        {
            var outputNode = inputValue.GetTargetNode();

            if (outputNode != null)
            {
                if (inputValue.IsTargetingNode)
                {
                    switch (inputValue.targetType)
                    {
                    case MemberData.TargetType.FlowNode:
                        return(GetSelfPort(outputNode, Orientation.Vertical, graphView));

                    case MemberData.TargetType.ValueNode:
                        PortView port;
                        if (graphView.portValueNodeAliases.TryGetValue(outputNode, out port) && port != null)
                        {
                            return(port);
                        }
                        return(GetSelfPort(outputNode, Orientation.Horizontal, graphView));
                    }
                }
                UNodeView nodeView;
                if (graphView.nodeViewsPerNode.TryGetValue(outputNode, out nodeView))
                {
                    foreach (var p in nodeView.outputPorts)
                    {
                        if (p.portData.portID == inputValue.startName)
                        {
                            return(p);
                        }
                    }
                }
            }
            return(null);
        }
Example #11
0
        public void TestGenerateMemberData()
        {
            MethodBase method = typeof(MethodTestClass).GetMethod("Method");
            IReadOnlyList <MemberRef> expectedAttr = new MemberRef[]
            { new MemberRef("STAThreadAttribute", MemberRefType.Class, typeof(STAThreadAttribute).MetadataToken) };

            docUtility.GenerateName(method).Returns("CSDocNet.TestDoc.MethodTestClass.Method");
            docUtility.GenerateAttributes(method).Returns(expectedAttr);
            idGen.GenerateMemberID(method).Returns("M:CSDocNet.TestDoc.MethodTestClass.Method");

            var name      = methodUtility.GenerateName(method);
            var id        = methodUtility.GenerateCommentID(method);
            var access    = methodUtility.GenerateAccess(method);
            var modifiers = methodUtility.GenerateModifiers(method);
            var attr      = methodUtility.GenerateAttributes(method);

            MemberData mData = methodUtility.GenerateMemberData(method);

            Assert.AreEqual(name, mData.Name);
            Assert.AreEqual(id, mData.CommentID);
            Assert.AreEqual(access, mData.Access);
            Assert.AreEqual(modifiers, mData.Modifiers);
            Assert.That(mData.Attributes, Is.EquivalentTo(attr));
        }
        ///// <summary>
        ///// Получает количечство всех дочерних элементов (включая дочерних дочерних :))
        ///// </summary>
        ///// <param name="memberItem"></param>
        ///// <param name="count"></param>
        ///// <param name="curent"></param>
        //static private void GetAllChildrenCount(PivotMemberItem memberItem, out int count, int curent)
        //{
        //    count = curent;
        //    if (memberItem.Children.Count > 0)
        //    {
        //        curent = curent + memberItem.Children.Count;
        //        foreach (PivotMemberItem v in memberItem.Children)
        //        {
        //            GetAllChildrenCount(v, out count, curent);
        //        }
        //    }
        //}

        /// <summary>
        /// Записывает область строк используя CellSetDataProvider по позициям (Positions).
        /// </summary>
        /// <param name="columnsCount">Количество колонок в области значений.</param>
        static private void WriteRowsByPositions(int columnsCount)
        {
            if (pivotDataProvider.Provider.CellSet_Description.Axes[1] != null)
            {
                //строка в pivotDataProvider.Provider.CellSet_Description.Cells
                int cellRowNumber = 0;
                foreach (PositionData position in pivotDataProvider.Provider.CellSet_Description.Axes[1].Positions)
                {
                    //<Row>
                    currentRow = document.CreateElement("s", "Row", spreadsheetNamespace);
                    table.AppendChild(currentRow);
                    int indexCell = 1;
                    foreach (PositionMemberData pos_member in position.Members)
                    {
                        MemberData member = pivotDataProvider.Provider.CellSet_Description.Axes[1].Members[pos_member.Id];
                        string     value  = member.Caption;
                        WriteCell(value, "String", axisStyle, indexCell, true);
                        indexCell++;
                    }
                    WriteDataRow(cellRowNumber, columnsCount, indexCell);
                    cellRowNumber++;
                }
            }
        }
Example #13
0
        public void TestGenerateMemberData()
        {
            FieldInfo field = typeof(FieldTestClass).GetField("StaticReadonlyField");
            IReadOnlyList <MemberRef> expectedAttr = new MemberRef[]
            { new MemberRef("NonSerializedAttribute", MemberRefType.Class, typeof(NonSerializedAttribute).MetadataToken) };

            utility.GenerateName(field).Returns("CSDocNet.TestDoc.FieldTestClass.StaticReadonlyField");
            utility.GenerateAttributes(field).Returns(expectedAttr);
            idGen.GenerateMemberID(field).Returns("F:CSDocNet.TestDoc.FieldTestClass.StaticReadonlyField");

            var name      = gen.GenerateName(field);
            var id        = gen.GenerateCommentID(field);
            var access    = gen.GenerateAccess(field);
            var modifiers = gen.GenerateModifiers(field);
            var attr      = gen.GenerateAttributes(field);

            MemberData mData = gen.GenerateMemberData(field);

            Assert.AreEqual(name, mData.Name);
            Assert.AreEqual(id, mData.CommentID);
            Assert.AreEqual(access, mData.Access);
            Assert.AreEqual(modifiers, mData.Modifiers);
            Assert.That(mData.Attributes, Is.EquivalentTo(attr));
        }
Example #14
0
        public void TestGenerateMemberData()
        {
            EventInfo ev = typeof(EventTestClass).GetEvent("PublicEvent");
            IReadOnlyList <MemberRef> expectedAttr = new MemberRef[]
            { new MemberRef("STAThreadAttribute", MemberRefType.Class, typeof(STAThreadAttribute).MetadataToken) };

            docUtility.GenerateName(ev).Returns("CSDocNet.TestDoc.EventTestClass.Event");
            docUtility.GenerateAttributes(ev).Returns(expectedAttr);
            idGen.GenerateMemberID(ev).Returns("M:CSDocNet.TestDoc.EventTestClass.Event");

            var name      = gen.GenerateName(ev);
            var id        = gen.GenerateCommentID(ev);
            var access    = gen.GenerateAccess(ev);
            var modifiers = gen.GenerateModifiers(ev);
            var attr      = gen.GenerateAttributes(ev);

            MemberData mData = gen.GenerateMemberData(ev);

            Assert.AreEqual(name, mData.Name);
            Assert.AreEqual(id, mData.CommentID);
            Assert.AreEqual(access, mData.Access);
            Assert.AreEqual(modifiers, mData.Modifiers);
            Assert.That(mData.Attributes, Is.EquivalentTo(attr));
        }
Example #15
0
        /// <summary>
        /// 遠征一覧を更新
        /// </summary>
        /// <param name="deckList"></param>
        public void UpdateMissionList(IEnumerable<MemberData.Deck.Fleet> deckList,
            MemberData.Ship shipData)
        {
            Mission[] mission = new Mission[] { new Mission(), new Mission(), new Mission() };
            if (deckList == null)
                return;

            lock (deckList)
            {
                foreach (var it in deckList)
                {
                    switch (it.Num)
                    {
                        case 1:
                            continue;
                        case 2:
                        case 3:
                        case 4:
                            mission[it.Num - 2].Name = it.Mission;
                            mission[it.Num - 2].Detail = it.MissionDetail;
                            mission[it.Num - 2].Finish = it.MissionFinish;
                            mission[it.Num - 2].DeckName = it.Name;
                            mission[it.Num - 2].Num = it.MissionNum;
                            mission[it.Num - 2].SupplyStatus = CheckFleetStatus(it.Member, shipData);
                            break;
                        default:
                            return;
                    }
                }
            }

            if (InvokeRequired)
                BeginInvoke((MethodInvoker)(() => updateMissionView(mission)));
            else
                updateMissionView(mission);
        }
Example #16
0
        /// <summary>
        /// 搜尋好友
        /// </summary>
        /// <param name="interactiveDto">interactiveDto</param>
        /// <returns>Tuple(MemberDto, string)</returns>
        public async Task <Tuple <MemberDto, string> > SearchFriend(InteractiveDto interactiveDto)
        {
            try
            {
                if (string.IsNullOrEmpty(interactiveDto.MemberID))
                {
                    return(Tuple.Create <MemberDto, string>(null, "會員編號無效."));
                }

                if (string.IsNullOrEmpty(interactiveDto.SearchKey))
                {
                    return(Tuple.Create <MemberDto, string>(null, "請輸入搜尋條件."));
                }

                MemberData memberData = await this.memberRepository.GetMemberDataByEmail(interactiveDto.SearchKey);

                if (memberData == null)
                {
                    return(Tuple.Create <MemberDto, string>(null, "無會員資料."));
                }

                InteractiveData interactiveData = await this.interactiveRepository.GetAppointInteractiveData(interactiveDto.MemberID, memberData.MemberID);

                if (interactiveData != null && interactiveData.Status == (int)InteractiveType.Friend)
                {
                    return(Tuple.Create <MemberDto, string>(null, "已加入好友."));
                }

                return(Tuple.Create(this.mapper.Map <MemberDto>(memberData), string.Empty));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Search Friend Error >>> MemberID:{interactiveDto.MemberID} SearchKey:{interactiveDto.SearchKey}\n{ex}");
                return(Tuple.Create <MemberDto, string>(null, "搜尋好友發生錯誤."));
            }
        }
Example #17
0
        private ActionResult RedirectByPaymentChoice(RegisterModel model, MemberData memberData)
        {
            // NOTE: for now all $25 signups will be paid for by credit card
            string actionName = string.Empty;

            switch (model.PaymentChoice)
            {
            case PaymentChoices.CreditCard:
                actionName = "SignupCC";
                //// override
                //OrderData orderData= this.AutoAddOrderRecord(model, memberData.MemberId);
                //actionName = "JumpToCartContainer";
                //return RedirectToRoute(new { action = actionName, memberId = memberData.MemberId, orderId = orderData.OrderId });
                break;

            case PaymentChoices.MoneyOrder:
                actionName = "SignupMO";
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            return(RedirectToRoute(new { action = actionName, memberId = memberData.MemberId }));
        }
Example #18
0
 public LVItemParamsFactory(MemberData.Ship.Info shipInfo, ImageList imgSlotItem)
 {
     _pwupParams = new SlotItemPowerupParams(shipInfo.SlotItem);
     _imgSlotItem = imgSlotItem;
     _info = shipInfo;
 }
        public ActionResult facebookJsLogin(string resid, string resemail, string resname)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            Session["Account"] = resid; //取得用戶ID
            Session["uname"] = resname; //取得用戶名稱
            Session["resAccount"] = "Facebook";//取得用戶來源
            Member m = new Member();
            MemberData md = new MemberData();
            if (Session["Account"] != null)
            {
                var memberData = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                if (memberData == null)
                {
                    m.uAccount = Session["Account"].ToString();
                    m.uName = resname;
                    m.wdate = DateTime.Now;
                    m.udate = DateTime.Now;
                    m.uPassWord = "******";
                    m.uphone = "";
                    m.memberID = DateTime.Now.ToString("yyyyMMdd") + (md.Get().Count + 1).ToString().PadLeft(3, '0');
                    m.isdel = 0;
                    m.sort = 5000;
                    m.FacebookId = resid;
                    m.GoogleId = "";
                    m.uemail = resemail ?? "";
                    md.Create(m);

                    dic.Add("Msg", "已成為會員");
                }
                else
                {
                    if (memberData.uemail == "" || memberData.uemail == null)
                    {
                        m.num = memberData.num;
                        m.uemail = resemail;
                        md.UpdateEmail(m);
                    }
                    dic.Add("Msg", "");
                }

            }

            dic.Add("success", true);
            return Json(dic);
        }
        public ActionResult ToUpdateMemberData(int num, string password = "", string new_password = "", string tel = "", string name = "", string Email = "")
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            Member m = new Member();
            MemberData md = new MemberData();
            var datacount = md.Get().ToList().Where(a => a.num == num).Count();
            var data = md.Get().ToList().Where(a => a.num == num).FirstOrDefault();
            if (datacount > 0)
            {
                if (password != "")
                {
                    if (data.uPassWord != PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(password)))
                    {
                        TempData["msg"] = "舊密碼錯誤";
                    }
                    else
                    {
                        m.num = num;
                        m.uPassWord = PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(new_password));
                        m.uphone = tel;
                        m.uName = name;
                        m.uemail = Email;
                        m.udate = DateTime.Now;
                        md.Update(m);
                        TempData["msg"] = "更新成功";
                    }

                }
                else
                {
                    m.num = num;
                    m.uPassWord = data.uPassWord;
                    m.uphone = tel;
                    m.uName = name;
                    if (Email != "")
                    {
                        m.uemail = Email;
                    }
                    else
                    {
                        m.uemail = data.uemail;
                    }

                    m.udate = DateTime.Now;
                    md.Update(m);
                    TempData["msg"] = "更新成功";
                }

            }
            else
            {
                TempData["msg"] = "不正常管道錯誤";
            }

            return RedirectToAction("Index", "Member");
        }
        public JsonResult ToCheckOldPwdMatch(int num, string pwd)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();

            MemberData md = new MemberData();
            var data = md.Get().ToList().Where(a => a.num == num).SingleOrDefault();

            if (data.uPassWord == PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(pwd)))
            {
                dic.Add("success", true);
                dic.Add("isOldPwd", true);
            }
            else
            {
                dic.Add("success", false);
                dic.Add("isOldPwd", false);
            }

            return Json(dic);
        }
        public ActionResult SendCheckPwdMail(string uname, string loginAccount, string code)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            MemberData md = new MemberData();
            Member m = new Member();
            var data = md.Get().ToList().Where(a => a.uName == uname && a.uemail == loginAccount && (a.FacebookId == "" && a.GoogleId == "")).SingleOrDefault();
            if (data != null)
            {

                m.num = data.num;
                var newPwd = RendomNum.GetRandomString(10);
                m.uPassWord = PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(newPwd));
                md.UpdatePassword(m);

                dic.Add("success", true);
                dic.Add("msg", "以寄到您的信箱,請自行前往確認");
                SendMailToEveryOne.SendMail(loginAccount, "*****@*****.**", "Funmtb忘記密碼通知", "Funmtb忘記密碼通知", "因個資關係,再麻煩親愛的客戶自行到官網去更改密碼,您的新密碼是:" + newPwd, false);
            }
            else
            {
                dic.Add("success", false);
                dic.Add("msg", "發生錯誤");
            }

            return Json(dic);
        }
Example #23
0
        public override void Write()
        {
            _worldPacket.WriteUInt32(MemberData.Count);

            MemberData.ForEach(p => p.Write(_worldPacket));
        }
Example #24
0
        public static ICollection <ReceiptData> getAllUserRecipts(string userName)
        {
            MemberData member = getMember(userName);

            return(member.receipts);
        }
Example #25
0
 /// <summary>
 /// True if group node has instance variable.
 /// </summary>
 /// <param name="groupNode"></param>
 /// <returns></returns>
 public static bool NeedInstanceVariable <T>(T superNode) where T : ISuperNode
 {
     if (superNode != null)
     {
         var flows = new HashSet <NodeComponent>();
         foreach (var n in superNode.nestedFlowNodes)
         {
             FindFlowConnectionAfterCoroutineNode(n, ref flows);
         }
         bool check = false;
         Func <object, bool> validation = null;
         validation = delegate(object obj) {
             if (obj is MemberData)
             {
                 MemberData member = obj as MemberData;
                 Node       n      = member.GetInstance() as Node;
                 if (n != null)
                 {
                     if (n is IVariableSystem && n is T && n == superNode as UnityEngine.Object &&
                         (member.targetType == MemberData.TargetType.uNodeVariable ||
                          member.targetType == MemberData.TargetType.uNodeGroupVariable ||
                          member.targetType == MemberData.TargetType.uNodeLocalVariable))
                     {
                         check = true;
                     }
                     else if (member.targetType == MemberData.TargetType.ValueNode)
                     {
                         AnalizerUtility.AnalizeObject(n, validation);
                     }
                 }
             }
             return(check);
         };
         foreach (Node node in flows)
         {
             if (node == null)
             {
                 continue;
             }
             AnalizerUtility.AnalizeObject(node, validation);
             if (check)
             {
                 return(true);
             }
         }
         var allConnection = new HashSet <NodeComponent>();
         foreach (var n in superNode.nestedFlowNodes)
         {
             FindAllNodeConnection(n, ref allConnection);
         }
         foreach (Node node in allConnection)
         {
             if (node == null)
             {
                 continue;
             }
             AnalizerUtility.AnalizeObject(node, validation);
             if (check)
             {
                 var nodes = GetFlowConnectedTo(node);
                 if (nodes.Count > 0)
                 {
                     if (nodes.Any(n => !flows.Contains(n)))
                     {
                         return(true);
                     }
                 }
                 if ((generatorData.ungroupedNode.Contains(node) || generatorData.portableActionInNode.Contains(node)))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
Example #26
0
        /// <summary>
        /// Are the flow connection identifiead as coroutine?
        /// </summary>
        /// <param name="member"></param>
        /// <returns></returns>
        public static bool IsCoroutineFlow(MemberData member)
        {
            var node = member.GetTargetNode();

            return(IsCoroutineFlow(node));
        }
Example #27
0
 public static HashSet <NodeComponent> GetFlowConnectedTo(Node target)
 {
     if (target != null)
     {
         if (generatorData.FlowConnectedTo.TryGetValue(target, out var comp))
         {
             return(comp);
         }
         comp = new HashSet <NodeComponent>();
         Node currNode = null;
         Func <object, bool> validation = delegate(object obj) {
             if (obj is MemberData)
             {
                 MemberData member     = obj as MemberData;
                 Node       targetNode = member.GetTargetNode();
                 if (targetNode == target)
                 {
                     if (member.targetType == MemberData.TargetType.FlowNode || member.targetType == MemberData.TargetType.FlowInput)
                     {
                         comp.Add(currNode);
                         return(true);
                     }
                     else if (member.targetType == MemberData.TargetType.ValueNode ||
                              member.targetType == MemberData.TargetType.NodeField ||
                              member.targetType == MemberData.TargetType.NodeFieldElement)
                     {
                         var connectedNodes = GetFlowConnectedTo(currNode);
                         if (connectedNodes != null)
                         {
                             foreach (var n in connectedNodes)
                             {
                                 comp.Add(n);
                             }
                         }
                     }
                 }
             }
             return(false);
         };
         foreach (Node node in generatorData.allNode)
         {
             if (target == node)
             {
                 continue;
             }
             if (node is StateNode)
             {
                 StateNode         eventNode = node as StateNode;
                 TransitionEvent[] TE        = eventNode.GetTransitions();
                 foreach (TransitionEvent transition in TE)
                 {
                     if (transition != null && transition.GetTargetNode() == target)
                     {
                         comp.Add(node);
                         break;
                     }
                 }
             }
             else if (node is IMacro)
             {
                 IMacro macro       = node as IMacro;
                 var    outputFlows = macro.OutputFlows;
                 foreach (var flow in outputFlows)
                 {
                     if (flow != null && flow.target.GetTargetNode() == target)
                     {
                         comp.Add(node);
                         break;
                     }
                 }
             }
             currNode = node;
             AnalizerUtility.AnalizeObject(node, validation);
         }
         foreach (EventNode method in generatorData.eventNodes)
         {
             if (method == null)
             {
                 continue;
             }
             foreach (var flow in method.GetFlows())
             {
                 if (flow.GetTargetNode() == target)
                 {
                     comp.Add(method);
                     break;
                 }
             }
         }
         generatorData.FlowConnectedTo[target] = comp;
         return(comp);
     }
     return(null);
 }
 public JsonResult member(string MyChecked)
 {
     Member n = new Member();
     MemberData nd = new MemberData();
     var array = MyChecked.Split(',');
     if (MyChecked != "" && MyChecked != null)
     {
         for (var i = 0; i < array.Length; i++)
         {
             //var Original = nd.Get().ToList().Where(a => a.num.ToString() == array[i]).SingleOrDefault();
             //var DelPath = System.IO.Path.Combine(Server.MapPath("~/upload/News/"), Original.pic1);
             //System.IO.File.Delete(DelPath);
             //if (Original.jsonimg != "no_img.jpg")
             //{
             //    var jsonstr = JsonConvert.DeserializeObject<List<jsonSer>>(Original.jsonimg);
             //    var DelJsonPath = Server.MapPath("~/upload/photograhy/");
             //    foreach (var j in jsonstr)
             //    {
             //        var DelJsonPathing = System.IO.Path.Combine(DelJsonPath, j.content);
             //        System.IO.File.Delete(DelJsonPathing);
             //    }
             //}
             //n.isdel = 1;
             //n.udate = DateTime.Now;
             n.num = Convert.ToInt32(array[i]);
             nd.Delete(n);
         }
     }
     return Json("");
 }
Example #29
0
 public SlotItemLVItem(string name,MemberData.Ship.Info.SlotItemInfo slotItem,ImageList imgSlotItem)
 {
     Text = name;
     SubItems.Add(new SlotItemNameLVSubItem(slotItem, imgSlotItem));
 }
Example #30
0
        /// <summary>
        /// 艦隊の燃料と弾薬の補給状況を調べる
        /// </summary>
        /// <param name="fleetMember">艦隊メンバー</param>
        /// <param name="shipData">艦娘ステート一覧</param>
        /// <returns>どの燃料が消費されているか</returns>
        SupplyStatusFlags CheckFleetStatus(IEnumerable<int> fleetMember, MemberData.Ship shipData)
        {
            SupplyStatusFlags status = SupplyStatusFlags.None;

            foreach (var ship_id in fleetMember)
            {
                var dat = shipData.GetShip(ship_id);
                if (!dat.Fuel.Full)
                {
                    Debug.WriteLine("Fuel not filled");
                    status |= SupplyStatusFlags.Fuel;
                }

                if (!dat.Bullet.Full)
                {
                    Debug.WriteLine("Bullet not filled");
                    status |= SupplyStatusFlags.Bullet;
                }
            }

            return status;
        }
Example #31
0
 /// <summary>
 /// Return true on flow body can be simplify to lambda expression code.
 /// </summary>
 /// <param name="target"></param>
 /// <param name="returnType"></param>
 /// <param name="parameterTypes"></param>
 /// <returns></returns>
 public static bool CanSimplifyToLambda(MemberData target, Type returnType, IList <Type> parameterTypes)
 {
     if (target.IsTargetingNode)
     {
         var bodyNode = target.GetTargetNode();
         if (bodyNode is MultipurposeNode)
         {
             var node = bodyNode as MultipurposeNode;
             if (node.target.target.isAssigned && !node.onFinished.isAssigned)
             {
                 System.Type[] memberTypes = null;
                 if (node.target.target.targetType == MemberData.TargetType.Method)
                 {
                     var members = node.target.target.GetMembers(false);
                     if (members != null && members.Length > 0)
                     {
                         var lastMember = members.LastOrDefault() as System.Reflection.MethodInfo;
                         if (lastMember != null && lastMember.ReturnType == returnType)
                         {
                             memberTypes = lastMember.GetParameters().Select(i => i.ParameterType).ToArray();
                         }
                     }
                 }
                 else if (node.target.target.targetType == MemberData.TargetType.uNodeFunction)
                 {
                     uNodeFunction func = node.target.target.GetUnityObject() as uNodeFunction;
                     if (func != null && func.ReturnType() == returnType)
                     {
                         memberTypes = func.parameters.Select(i => i.Type).ToArray();
                     }
                 }
                 if (memberTypes != null)
                 {
                     if (parameterTypes.Count == memberTypes.Length && node.target.parameters.Length == memberTypes.Length)
                     {
                         bool flag = true;
                         for (int x = 0; x < parameterTypes.Count; x++)
                         {
                             if (parameterTypes[x] != memberTypes[x])
                             {
                                 flag = false;
                                 break;
                             }
                         }
                         if (flag)
                         {
                             for (int x = 0; x < parameterTypes.Count; x++)
                             {
                                 var p = node.target.parameters[x];
                                 if (p.targetType != MemberData.TargetType.NodeFieldElement || p.GetAccessIndex() != x)
                                 {
                                     flag = false;
                                     break;
                                 }
                             }
                             if (flag)
                             {
                                 return(true);
                             }
                         }
                     }
                 }
             }
         }
     }
     return(false);
 }
        public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
            if (loginInfo == null)
            {
                return RedirectToAction("Index", "login");
            }
            //若使用者已經有登入資料,請使用此外部登入提供者登入使用者
            if (loginInfo != null)
            {
                var id = new ClaimsIdentity(loginInfo.ExternalIdentity.Claims,
                                            DefaultAuthenticationTypes.ApplicationCookie);

                Session["Account"] = id.GetUserId();
                Session["uname"] = loginInfo.DefaultUserName; //取得用戶名稱
                Session["resAccount"] = loginInfo.Login.LoginProvider;//取得用戶來源

                //var resourceAccount = loginInfo.Login.LoginProvider; 
                //TODO: 驗證邏輯,註冊會員邏輯    
                Member m = new Member();
                MemberData md = new MemberData();
                if (Session["Account"] != null)
                {
                    var memberData = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                    if (memberData == null)
                    {
                        m.uAccount = Session["Account"].ToString();
                        m.uName = loginInfo.DefaultUserName;
                        m.wdate = DateTime.Now;
                        m.udate = DateTime.Now;
                        m.uPassWord = "******";
                        m.uphone = "";
                        m.memberID = DateTime.Now.ToString("yyyyMMdd") + (md.Get().Count + 1).ToString().PadLeft(3, '0');
                        m.isdel = 0;
                        m.sort = 5000;
                        switch (loginInfo.Login.LoginProvider)
                        {
                            case "Facebook":
                                m.FacebookId = id.GetUserId();
                                m.GoogleId = "";
                                m.uemail = loginInfo.Email ?? "";
                                break;
                            case "Google":
                                m.FacebookId = "";
                                m.GoogleId = id.GetUserId();
                                m.uemail = loginInfo.Email;
                                break;
                            default:
                                m.FacebookId = "";
                                m.GoogleId = "";
                                m.uemail = "";
                                break;
                        }


                        md.Create(m);
                        TempData["Congu"] = "已成為會員";
                    }

                }

                //End: 加上你的驗證邏輯,或是註冊會員邏輯
                AuthenticationManager.SignIn(id);

                return RedirectToLocal(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "login");
            }


            // 若使用者已經有登入資料,請使用此外部登入提供者登入使用者
            //var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
            //switch (result)
            //{
            //    case SignInStatus.Success:
            //        return RedirectToLocal(returnUrl);
            //    case SignInStatus.LockedOut:
            //        return View("Lockout");
            //    case SignInStatus.RequiresVerification:
            //        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
            //    case SignInStatus.Failure:
            //    default:
            //        // 若使用者沒有帳戶,請提示使用者建立帳戶
            //        ViewBag.ReturnUrl = returnUrl;
            //        ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
            //        return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.Email });
            //}
        }
Example #33
0
        /// <summary>
        /// Shows a context-sensitive menu for listing, viewing, creating, editing, or deleting members
        /// </summary>
        /// <param name="dataMode"></param>
        /// <param name="displayMode"></param>
        /// <param name="selectedID"></param>
        void ShowMemberMenu(DataMode dataMode, ListDisplayMode displayMode = ListDisplayMode.Compact, string selectedID = null)
        {
            Console.Clear();

            string     selected     = selectedID;
            MemberData selectedData = null;

            if (dataMode != DataMode.Create)
            {
                if (selected == null)
                {
                    selected = SelectMember($"Please select the member whose details you wish to {(dataMode == DataMode.View ? "view" : "edit")}:\n", displayMode);
                }

                selectedData = (MemberData)DataController.RetrieveByID(selected);
            }

            switch (dataMode)
            {
            case DataMode.Create:
            case DataMode.Edit:
            {
                Dictionary <string, object> arguments = new Dictionary <string, object>();

                Console.WriteLine("Please fill out the following fields");
                Console.Write("Name: ");
                arguments.Add("name", Console.ReadLine());

                Console.Write("Personal Number: ");
                var pn = ReadValidInput((s) => {
                        var res = s.Length != 10 || s.Sum(c => { return(("0123456789".Contains(c)) ? 0 : c); }) > 0;
                        if (res)
                        {
                            Console.WriteLine("The personal number has to be all digits and ten digits long!");
                        }
                        return(res);
                    });
                arguments.Add("personal-num", pn);

                if (dataMode == DataMode.Create)
                {
                    DataController.CreateData(typeof(MemberData), arguments);
                }
                else
                {
                    DataController.ChangeData(selected, arguments);
                }
                break;
            }

            case DataMode.View:
            {
                Console.Clear();
                Console.Write(
                    $"Member ID: {selectedData.ID}\n" +
                    $"Time of creation: {selectedData.Timestamp}\n\n" +
                    $"Name: {selectedData.Name}\n" +
                    $"Personal Number: {selectedData.PersonalNumber}\n" +
                    $"Boats: ({selectedData.Boats.Count})\n");
                foreach (BoatData boat in selectedData.Boats)
                {
                    Console.WriteLine($" - {boat.Length}m {boat.BoatType} (Boat ID: {boat.ID})");
                }

                Console.WriteLine("\nPress E to edit this - Press D to delete this - Any else to return to main menu...");

                var key = Console.ReadKey().Key;

                switch (key)
                {
                case ConsoleKey.E: ShowMemberMenu(DataMode.Edit, selectedID: selected); break;

                case ConsoleKey.D: ShowDeleteConfirmation(selected); break;

                default: return;
                }

                break;
            }
            }
        }
Example #34
0
 public void UpdateMaterialData(MemberData.Material dat)
 {
     materialList.Update(dat);
 }
Example #35
0
 public void UpdateRepairDock(MemberData.Dock dock)
 {
     dockRepair.UpdateDockList(dock.RepairDock);
     _timerRPC.UpdateNDock(dock);
 }
Example #36
0
 public void UpdateBasicInfo(MemberData.Basic basicInfo)
 {
     _timerRPC.UpdateParameters(basicInfo);
 }
        public ActionResult register(string name, string account, string password, string tel)
        {
            Member m = new Member();
            MemberData md = new MemberData();
            var count = md.Get().ToList().Count;

            m.uName = name;
            m.uAccount = account;
            m.uPassWord = PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(password));
            m.uphone = tel;
            m.isdel = 0;
            m.memberID = DateTime.Now.ToString("yyyyMMdd") + (count + 1).ToString().PadLeft(3, '0');
            m.wdate = DateTime.Now;
            m.udate = DateTime.Now;
            m.sort = 5000;
            m.GoogleId = "";
            m.FacebookId = "";
            m.uemail = account;
            md.Create(m);
            Session["resAccount"] = "natr";
            Session["Account"] = account;
            return RedirectToAction("Index", "Member");
        }
Example #38
0
 public MonobehaviourScriptCreator()
 {
     graphInheritFrom = MemberData.CreateFromType(typeof(MonoBehaviour));
     graphInheritFilter.Types.Add(typeof(MonoBehaviour));
 }
        public ActionResult signin(string login_account, string login_password)
        {
            Member m = new Member();
            MemberData md = new MemberData();
            var memberdatacount = md.Get().ToList().Where(a => a.uAccount == login_account && a.uPassWord == PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(login_password))).Count();
            var memberdata = md.Get().ToList().Where(a => a.uAccount == login_account && a.uPassWord == PassWordSecurity.Sha384Encode(PassWordSecurity.Sha256Encode(login_password))).SingleOrDefault();
            if (memberdatacount > 0)
            {
                TempData["isForgetPwd"] = false;
                Session["resAccount"] = "natr";
                Session["Account"] = memberdata.uAccount;
                Session["uname"] = memberdata.uName;

                return RedirectToAction("Index", "Home");
            }
            else
            {
                TempData["isForgetPwd"] = true;
                return RedirectToAction("Index", "login");
            }
        }
Example #40
0
        public void PasteNode(Vector3 position)
        {
            if (nodeToCopy == null || nodeToCopy.Count == 0)
            {
                return;
            }
            if (uNodeEditorUtility.IsPrefab(editorData.graph.gameObject))
            {
                throw new Exception("Editing graph prefab dirrectly is not supported.");
            }
            uNodeEditorUtility.RegisterUndo(editorData.graph, "Paste Node");
            uNodeRoot UNR       = editorData.graph;
            float     progress  = 0;
            int       loopIndex = 0;

            if (nodeToCopy.Count > 5)
            {
                EditorUtility.DisplayProgressBar("Loading", "", progress);
            }
            Vector2 center       = Vector2.zero;
            int     centerLength = 0;
            Dictionary <uNodeComponent, uNodeComponent> CopyedObjectMap = new Dictionary <uNodeComponent, uNodeComponent>(EqualityComparer <uNodeComponent> .Default);

            foreach (uNodeComponent comp in nodeToCopy)
            {
                if (comp == null || comp is EventNode && editorData.selectedGroup != null)
                {
                    continue;
                }
                Node node = comp as Node;
                if (!CopyedObjectMap.ContainsKey(comp))
                {
                    uNodeComponent com = Object.Instantiate(comp);
                    com.gameObject.name = com.gameObject.name.Replace("(Clone)", "");
                    if (editorData.selectedGroup == null)
                    {
                        if (editorData.selectedRoot)
                        {
                            com.transform.parent = editorData.selectedRoot.transform;
                        }
                        else
                        {
                            com.transform.parent = NodeEditorUtility.GetNodeRoot(UNR).transform;
                        }
                    }
                    else
                    {
                        com.transform.parent = editorData.selectedGroup.transform;
                    }
                    int    index = 0;
                    string nm    = com.gameObject.name.TrimEnd(numberChar);
                    while (true)
                    {
                        bool   flag  = false;
                        string gName = com.gameObject.name;
                        foreach (Transform t in com.transform.parent)
                        {
                            if (t != com.transform)
                            {
                                if (t.gameObject.name.Equals(gName))
                                {
                                    flag = true;
                                    break;
                                }
                            }
                        }
                        if (flag)
                        {
                            com.gameObject.name = nm + index.ToString();
                            index++;
                            continue;
                        }
                        break;
                    }
                    CopyedObjectMap.Add(comp, com);
                    if (comp is IMacro || comp is ISuperNode)
                    {
                        var fields = EditorReflectionUtility.GetFields(comp.GetType());
                        foreach (var field in fields)
                        {
                            if (field.FieldType == typeof(List <Nodes.MacroPortNode>))
                            {
                                var value = field.GetValueOptimized(comp) as List <Nodes.MacroPortNode>;
                                if (value != null)
                                {
                                    var sourceValue = field.GetValueOptimized(com) as List <Nodes.MacroPortNode>;
                                    for (int i = 0; i < value.Count; i++)
                                    {
                                        if (value[i] == null)
                                        {
                                            continue;
                                        }
                                        CopyedObjectMap.Add(value[i], sourceValue[i]);
                                    }
                                }
                            }
                        }
                    }
                }
                if (node != null)
                {
                    center.x += node.editorRect.x;
                    center.y += node.editorRect.y;
                    centerLength++;
                }
                else
                {
                    BaseEventNode met = comp as BaseEventNode;
                    if (met != null)
                    {
                        center.x += met.editorRect.x;
                        center.y += met.editorRect.y;
                        centerLength++;
                    }
                }
                loopIndex++;
                progress = (float)loopIndex / (float)nodeToCopy.Count;
                if (nodeToCopy.Count > 5)
                {
                    EditorUtility.DisplayProgressBar("Loading", "", progress);
                }
            }
            progress = 0;
            center  /= centerLength;
            HashSet <uNodeComponent> needReflectedComponent = new HashSet <uNodeComponent>();
            uNodeRoot compEvent = null;

            foreach (uNodeComponent com in nodeToCopy)
            {
                uNodeComponent comp = null;
                if (CopyedObjectMap.ContainsKey(com))
                {
                    comp = CopyedObjectMap[com];
                    if (comp == null)
                    {
                        loopIndex++;
                        progress = (float)loopIndex / (float)nodeToCopy.Count;
                        if (nodeToCopy.Count > 5)
                        {
                            EditorUtility.DisplayProgressBar("Loading", "", progress);
                        }
                        continue;
                    }
                    if (comp as Node)
                    {
                        Node node = comp as Node;
                        Func <object, bool> validation = delegate(object o) {
                            if (o is MemberData)
                            {
                                MemberData member = o as MemberData;
                                if (member.IsTargetingPinOrNode)
                                {
                                    NodeComponent n = member.GetInstance() as NodeComponent;
                                    if (n && n is uNodeComponent)
                                    {
                                        if (CopyedObjectMap.ContainsKey(n))
                                        {
                                            member.instance = CopyedObjectMap[n] as NodeComponent;
                                            n.owner         = UNR;
                                            return(true);
                                        }
                                        else if (n.owner != UNR || n.transform.parent != node.transform.parent)
                                        {
                                            member.instance = null;
                                            n.owner         = UNR;
                                            return(true);
                                        }
                                        //return true;
                                    }
                                }
                            }
                            return(false);
                        };
                        if (node as StateNode)
                        {
                            StateNode         eventNode = node as StateNode;
                            TransitionEvent[] TE        = eventNode.GetTransitions();
                            foreach (TransitionEvent n in TE)
                            {
                                var tn = n.GetTargetNode();
                                if (tn == null)
                                {
                                    continue;
                                }
                                if (CopyedObjectMap.ContainsKey(tn))
                                {
                                    n.target = MemberData.CreateConnection(CopyedObjectMap[tn] as Node, true);
                                    n.owner  = UNR;
                                }
                                else if (n.owner != UNR || tn != null && tn.owner != UNR ||
                                         tn != null && tn.transform.parent != node.transform.parent)
                                {
                                    n.target = MemberData.none;
                                    n.owner  = UNR;
                                }
                            }
                        }
                        else if (node is IMacro || node is ISuperNode)
                        {
                            var fields = EditorReflectionUtility.GetFields(comp.GetType());
                            foreach (var field in fields)
                            {
                                if (field.FieldType == typeof(List <Nodes.MacroPortNode>))
                                {
                                    var value = field.GetValueOptimized(comp) as List <Nodes.MacroPortNode>;
                                    if (value != null)
                                    {
                                        foreach (var v in value)
                                        {
                                            AnalizerUtility.AnalizeObject(v, validation);
                                        }
                                    }
                                }
                            }
                        }
                        AnalizerUtility.AnalizeObject(node, validation);
                        node.editorRect = new Rect(node.editorRect.x - center.x + position.x, node.editorRect.y - center.y + position.y, node.editorRect.width, node.editorRect.height);
                        if (node.owner != UNR)
                        {
                            node.owner = UNR;
                        }
                    }
                    else if (comp is BaseEventNode)
                    {
                        BaseEventNode method = comp as BaseEventNode;
                        var           flows  = method.GetFlows();
                        for (int i = 0; i < flows.Count; i++)
                        {
                            var tn = flows[i].GetTargetNode();
                            if (tn != null && CopyedObjectMap.ContainsKey(tn))
                            {
                                flows[i] = new MemberData(CopyedObjectMap[flows[i].GetTargetNode()], MemberData.TargetType.FlowNode);
                            }
                            else if (method.owner != UNR)
                            {
                                flows[i] = MemberData.none;
                            }
                        }
                        method.owner      = UNR;
                        method.editorRect = new Rect(method.editorRect.x - center.x + position.x, method.editorRect.y - center.y + position.y, method.editorRect.width, method.editorRect.height);
                    }
                }
                loopIndex++;
                progress = (float)loopIndex / (float)nodeToCopy.Count;
                if (nodeToCopy.Count > 5)
                {
                    EditorUtility.DisplayProgressBar("Loading", "", progress);
                }
            }
            if (nodeToCopy.Count > 5)
            {
                EditorUtility.ClearProgressBar();
            }
            if (needReflectedComponent.Count > 0)
            {
                NodeEditorUtility.PerformReflectComponent(needReflectedComponent.ToList(), compEvent, UNR);
            }
            foreach (KeyValuePair <uNodeComponent, uNodeComponent> keys in CopyedObjectMap)
            {
                if (keys.Value != null)
                {
                    Undo.RegisterCreatedObjectUndo(keys.Value.gameObject, "Paste Node");
                }
            }
            //allCopyedEvent.Clear();
            Refresh();
        }
 public ActionResult ToMatchAccount(string account)
 {
     Dictionary<string, object> dic = new Dictionary<string, object>();
     MemberData md = new MemberData();
     var membercount = md.Get().ToList().Where(a => a.uAccount == account).Count();
     if (membercount > 0)
     {
         dic.Add("success", false);
     }
     else
     {
         dic.Add("success", true);
     }
     return Json(dic);
 }
Example #42
0
        /// <summary>
        /// /kcsapi/api_req_sortie/battle
        /// 戦闘開始
        /// </summary>
        /// <param name="JSON"></param>
        /// <param name="practice">演習の時true</param>
        /// <param name="_memberShip"></param>
        /// <param name="_memberDeck"></param>
        /// <param name="_masterShip"></param>
        public int ProcessBattle(string JSON,bool practice, MemberData.Ship _memberShip,
            MemberData.Deck _memberDeck, MasterData.Ship _masterShip,MasterData.Item _masterItem)
        {
            var json = JsonConvert.DeserializeObject<KCB.api_req_sortie.Battle>(JSON);
            if (json == null)
                return 0;
            if (json.api_result != 1)
                return 0;
            _practice = practice;

            var result = json.api_data;
            var deck_info = _memberDeck.GetFleet(result.api_dock_id);

            int estimatedBattleTime = InitialPhase;

            initializeShipData(result, deck_info, _memberShip, _masterShip);

            //索敵フェイズ
            if (_battleResult.Friend.SearchResult != Result.FleetState.SearchResultType.索敵なし)
                estimatedBattleTime += SearchPhase;

            //支援艦隊が来た
            if (result.api_support_flag > 0 && result.api_support_info != null)
            {
                //航空支援(flag=1)
                if (result.api_support_info.api_support_airatack != null)
                {
                    Debug.WriteLine("航空支援(味方から敵へ)");
                    getRaiDamage(result.api_support_info.api_support_airatack.api_stage3.api_edam,
                        _battleResult.Enemy.Ships);
                    estimatedBattleTime += SupportTime;
                }
                //砲雷撃支援(flag=2/雷撃,3/砲撃)
                if (result.api_support_info.api_support_hourai != null)
                {
                    Debug.WriteLine("砲雷支援(味方から敵へ)");
                    getRaiDamage(result.api_support_info.api_support_hourai.api_damage,
                        _battleResult.Enemy.Ships);
                    estimatedBattleTime += SupportTime;
                }
            }

            // 開幕雷撃
            if (result.api_opening_flag == 1 && result.api_opening_atack != null)
            {
                Debug.WriteLine("開幕雷撃(敵から味方へ)");
                estimatedBattleTime +=
                    getRaiDamage(result.api_opening_atack.api_fdam, _battleResult.Friend.Ships);

                Debug.WriteLine("開幕雷撃(味方から敵へ)");
                getRaiDamage(result.api_opening_atack.api_edam, _battleResult.Enemy.Ships);

            }
            estimatedBattleTime += Torpedo;

            // 航空戦
            if (result.api_stage_flag[2] == 1 && result.api_kouku.api_stage3 != null)
            {
                Debug.WriteLine("航空戦(敵から味方へ)");
                estimatedBattleTime +=
                    getRaiDamage(result.api_kouku.api_stage3.api_fdam, _battleResult.Friend.Ships);

                Debug.WriteLine("航空戦(味方から敵へ)");
                getRaiDamage(result.api_kouku.api_stage3.api_edam, _battleResult.Enemy.Ships);

            }
            estimatedBattleTime += AirBattle;

            // 砲撃1順目
            if (result.api_hourai_flag[0] == 1 && result.api_hougeki1 != null)
            {
                Debug.WriteLine("砲撃1順目");
                estimatedBattleTime += getHougekiDamage(result.api_hougeki1, _battleResult, _masterItem);
            }

            // 砲撃2順目
            if (result.api_hourai_flag[1] == 1 && result.api_hougeki2 != null)
            {
                Debug.WriteLine("砲撃2順目");
                estimatedBattleTime += getHougekiDamage(result.api_hougeki2, _battleResult, _masterItem);

            }

            // 砲撃3順目
            if (result.api_hourai_flag[2] == 1 && result.api_hougeki3 != null)
            {
                Debug.WriteLine("砲撃3順目");
                estimatedBattleTime += getHougekiDamage(result.api_hougeki3, _battleResult, _masterItem);
            }

            // 雷撃
            if (result.api_hourai_flag[3] == 1 && result.api_raigeki != null)
            {
                Debug.WriteLine("雷撃(敵から味方へ)");
                estimatedBattleTime +=
                    getRaiDamage(result.api_raigeki.api_fdam, _battleResult.Friend.Ships);

                Debug.WriteLine("雷撃(味方から敵へ)");
                getRaiDamage(result.api_raigeki.api_edam, _battleResult.Enemy.Ships);
            }
            estimatedBattleTime += Torpedo;

            //夜戦の場合は待つ必要がないから0を返す。
            return result.api_midnight_flag != 0 ? estimatedBattleTime : 0;
        }
Example #43
0
                public HPLVItem(MemberData.Ship.Info shipInfo)
                {
                    Text = "HP";
                    UseItemStyleForSubItems = false;

                    string valstr = shipInfo.HP.ToString();
                    if (shipInfo.RepairTime.TotalSeconds > 0)
                        valstr += string.Format(" (入渠所要:{0})", shipInfo.RepairTimeString);

                    SubItems.Add(valstr);
                    SubItems[1].BackColor = shipInfo.HP.BackgroundColor;

                }
Example #44
0
        /// <summary>
        /// 内部状態の初期化
        /// </summary>
        /// <param name="result">戦闘結果</param>
        /// <param name="_memberShip"></param>
        /// <param name="fleetInfo">艦隊情報</param>
        /// <param name="_masterShip"></param>
        private void initializeShipData(KCB.api_req_sortie.Battle.ApiData result,
            MemberData.Deck.Fleet fleetInfo, MemberData.Ship _memberShip, MasterData.Ship _masterShip)
        {
            Debug.WriteLine("戦闘開始/艦隊番号:" + fleetInfo.Num.ToString());
            _battleResult = new Result(result.api_midnight_flag == 1,_practice);

            //戦闘形態を取得する

            _battleResult.Friend.Formation = (Result.FleetState.FormationType)result.api_formation[0];
            _battleResult.Enemy.Formation = (Result.FleetState.FormationType)result.api_formation[1];
            if (result.api_search != null)
            {
                _battleResult.Friend.SearchResult = (Result.FleetState.SearchResultType)result.api_search[0];
                _battleResult.Enemy.SearchResult = (Result.FleetState.SearchResultType)result.api_search[1];
            }
            else
            {
                _battleResult.Friend.SearchResult = Result.FleetState.SearchResultType.索敵なし;
                _battleResult.Enemy.SearchResult = Result.FleetState.SearchResultType.索敵なし;
            }

            _battleResult.MatchState = (Result.MatchType)result.api_formation[2];

            Debug.WriteLine(string.Format("自陣形:{0} {1}\n敵陣形:{2} {3}\n交戦形態:{4}\n夜戦:{5}",
                 _battleResult.Friend.Formation,_battleResult.Friend.SearchResult,
                 _battleResult.Enemy.Formation,_battleResult.Enemy.SearchResult,
                 _battleResult.MatchState, _battleResult.HasNightBattle));

            ///味方艦隊の情報を取得する
            for (int i = 0; i < fleetInfo.Member.Count; i++)
            {
                var ship_id = fleetInfo.Member[i];
                var ship = _memberShip.GetShip(ship_id);
                var info = _battleResult.Friend.Ships[i];

                info.Initialize(ship_id,ship.ShipNameId,ship.ShipName,ship.ShipTypeId,
                    result.api_maxhps[i + 1],result.api_nowhps[i + 1]);

                Debug.WriteLine(string.Format("No.{0} ID:{1} Name:{2} HP:{3}", i + 1,
                    ship_id, ship.ShipName,ship.HP.ToString()));
            }

            ///敵艦隊の情報を取得する
            for (int i = 0; i < 6; i++)
            {
                int ship_id = result.api_ship_ke[i + 1];
                if (ship_id < 0)
                    continue;

                var ship = _masterShip.LookupShipMaster(ship_id);
                var info = _battleResult.Enemy.Ships[i];
                string shipName;
                if(_practice)
                    shipName = ship.Name;
                else
                    shipName = string.Format("{0}{1}", ship.Name, ship.Yomi);

                info.Initialize(-1,ship_id,shipName,ship.ShipTypeId,
                    result.api_maxhps[i + 7],result.api_nowhps[i + 7]);

                Debug.WriteLine(string.Format("No.{0} Name:{1} HP:{2}/{3}",
                    i + 1, shipName, result.api_maxhps[i + 7], result.api_nowhps[i + 7]));
            }
        }
Example #45
0
 public void UpdateDeckMemberList(MemberData.Ship shipData, IEnumerable<MemberData.Deck.Fleet> deckList)
 {
     deckMemberList.UpdateDeck(deckList, shipData);
     missionList.UpdateMissionList(deckList,shipData);
     _timerRPC.UpdateMission(deckList);
 }
Example #46
0
                    public SlotItemNameLVSubItem(MemberData.Ship.Info.SlotItemInfo slotItem,ImageList imgSlotItem)
                    {
//                        this.imgSlotItem = imgSlotItem;

                        imageNormal = new Bitmap(16, 16);
                        imageSelected = new Bitmap(16, 16);

                        if (slotItem == null)
                        {
                            Text = "(未装備)";
                            slotItemIndex = 0;
                            
                        }
                        else
                        {
                            if(slotItem.Level > 0)
                                Text = string.Format("[{1}]{0}", slotItem.Name  ,slotItem.Level);
                            else
                                Text = slotItem.Name;

                            slotItemIndex = slotItem.TypeNum;
                            if (slotItemIndex < 0)
                                slotItemIndex = 0;
                        }

                        DrawSlotItemImage(imgSlotItem, imageNormal, SystemBrushes.Window, slotItemIndex);
                        DrawSlotItemImage(imgSlotItem, imageSelected, SystemBrushes.Highlight, slotItemIndex);

                    }
Example #47
0
 public void UpdateBuildDock(MemberData.Dock dock)
 {
     dockBuild.UpdateDockList(dock.BuildDock);
 }
Example #48
0
 public removeOwnerPermissionData(MemberData myOwner, string store, string sponser) : this(store, sponser)
 {
     this.myOwner     = myOwner;
     this.myOwnerName = myOwner.userName;
 }
Example #49
0
 public void UpdateShipListDeck(MemberData.Deck deckData)
 {
     if (_wndShipList != null)
         _wndShipList.UpdateShipListDeck(deckData);
 }
Example #50
0
        protected override void InitializeView()
        {
            HLNode node = targetNode as HLNode;

            node.Refresh();
            var instance = node.instance;

            if (instance == null)
            {
                return;
            }
            if (instance is IStateNode || instance is IStateCoroutineNode)
            {
                AddOutputFlowPort(
                    new PortData()
                {
                    portID         = nameof(node.onSuccess),
                    onValueChanged = (o) => {
                        RegisterUndo();
                        node.onSuccess = o as MemberData;
                    },
                    getPortName    = () => "Success",
                    getPortType    = () => typeof(FlowInput),
                    getPortValue   = () => node.onSuccess,
                    getPortTooltip = () => "Flow to execute on success",
                }
                    );
                AddOutputFlowPort(
                    new PortData()
                {
                    portID         = nameof(node.onFailure),
                    onValueChanged = (o) => {
                        RegisterUndo();
                        node.onFailure = o as MemberData;
                    },
                    getPortName    = () => "Failure",
                    getPortType    = () => typeof(FlowInput),
                    getPortValue   = () => node.onFailure,
                    getPortTooltip = () => "Flow to execute on failure",
                }
                    );
            }
            if (node.IsFlowNode())              //Flow input
            {
                nodeFlowPort = AddInputFlowPort(
                    new PortData()
                {
                    portID        = UGraphView.SelfPortID,
                    getPortName   = () => "",
                    getConnection = () => {
                        return(new MemberData(node, MemberData.TargetType.FlowNode));
                    },
                }
                    );
                AddOutputFlowPort(
                    new PortData()
                {
                    portID         = "onFinished",
                    onValueChanged = (o) => {
                        RegisterUndo();
                        node.onFinished = o as MemberData;
                    },
                    getPortName  = () => instance is IStateNode || instance is IStateCoroutineNode ? "Finished" : "",
                    getPortType  = () => typeof(FlowInput),
                    getPortValue = () => node.onFinished,
                }
                    );
            }
            if (node.CanGetValue() || node.CanSetValue())              //Value output
            {
                nodeValuePort = AddOutputValuePort(
                    new PortData()
                {
                    portID        = UGraphView.SelfPortID,
                    getPortName   = () => "Out",
                    getPortType   = () => node.ReturnType(),
                    getPortValue  = () => node,
                    getConnection = () => {
                        return(new MemberData(node, MemberData.TargetType.ValueNode));
                    },
                }
                    );
            }
            Type type   = instance.GetType();
            var  fields = EditorReflectionUtility.GetFields(type);

            foreach (var field in fields)
            {
                if (field.IsDefined(typeof(NonSerializedAttribute)) || field.IsDefined(typeof(HideAttribute)))
                {
                    continue;
                }
                var option = field.GetCustomAttribute(typeof(NodePortAttribute), true) as NodePortAttribute;
                if (option != null && option.hideInNode)
                {
                    continue;
                }
                var val = node.initializers.FirstOrDefault(d => d.name == field.Name);
                if (val == null)
                {
                    val = new FieldValueData()
                    {
                        name  = field.Name,
                        value = MemberData.CreateFromValue(field.GetValue(instance), field.FieldType),
                    };
                    node.initializers.Add(val);
                }
                AddInputValuePort(
                    new PortData()
                {
                    portID         = field.Name,
                    onValueChanged = (o) => {
                        RegisterUndo();
                        val.value = o as MemberData;
                    },
                    getPortName    = () => option != null ? option.name : field.Name,
                    getPortType    = () => field.FieldType,
                    getPortValue   = () => val.value,
                    getPortTooltip = () => {
                        var tooltip = field.GetCustomAttribute(typeof(TooltipAttribute), true) as TooltipAttribute;
                        return(tooltip != null ? tooltip.tooltip : string.Empty);
                    },
                });
            }
        }
Example #51
0
 protected void CreateOverrideMembers(uNodeRoot graph)
 {
     foreach (var member in graphOverrideMembers)
     {
         if (member is MethodInfo method)
         {
             var func = CreateComponent <uNodeFunction>(method.Name, GetRootTransfrom(graph), (val) => {
                 val.Name       = method.Name;
                 val.returnType = MemberData.CreateFromType(method.ReturnType);
                 val.parameters = method.GetParameters().Select(p => new ParameterData(p.Name, p.ParameterType)
                 {
                     value = p.DefaultValue
                 }).ToArray();
                 val.genericParameters = method.GetGenericArguments().Select(p => new GenericParameterData(p.Name)).ToArray();
             });
             CreateComponent <Nodes.NodeAction>("Entry", func, node => {
                 func.startNode = node;
             });
         }
         else if (member is PropertyInfo property)
         {
             var prop = CreateComponent <uNodeProperty>(property.Name, GetRootTransfrom(graph), (val) => {
                 val.Name = property.Name;
                 val.type = MemberData.CreateFromType(property.PropertyType);
             });
             var getMethod = property.GetGetMethod(true);
             var setMethod = property.GetSetMethod(true);
             if (getMethod != null)
             {
                 var func = CreateComponent <uNodeFunction>("Getter", GetRootTransfrom(graph), (val) => {
                     val.Name       = getMethod.Name;
                     val.returnType = MemberData.CreateFromType(getMethod.ReturnType);
                     val.parameters = getMethod.GetParameters().Select(p => new ParameterData(p.Name, p.ParameterType)
                     {
                         value = p.DefaultValue
                     }).ToArray();
                     val.genericParameters = getMethod.GetGenericArguments().Select(p => new GenericParameterData(p.Name)).ToArray();
                 });
                 CreateComponent <Nodes.NodeAction>("Entry", func, node => {
                     func.startNode = node;
                     CreateComponent <NodeReturn>("Return", func, returnNode => {
                         node.onFinished        = MemberData.CreateConnection(returnNode, true);
                         returnNode.returnValue = MemberData.CreateFromValue(null, property.PropertyType);
                     });
                 });
                 prop.getRoot = func;
             }
             if (setMethod != null)
             {
                 var func = CreateComponent <uNodeFunction>("Setter", GetRootTransfrom(graph), (val) => {
                     val.Name       = setMethod.Name;
                     val.returnType = MemberData.CreateFromType(setMethod.ReturnType);
                     val.parameters = setMethod.GetParameters().Select(p => new ParameterData(p.Name, p.ParameterType)
                     {
                         value = p.DefaultValue
                     }).ToArray();
                     val.genericParameters = setMethod.GetGenericArguments().Select(p => new GenericParameterData(p.Name)).ToArray();
                 });
                 CreateComponent <Nodes.NodeAction>("Entry", func, node => {
                     func.startNode = node;
                 });
                 prop.setRoot = func;
             }
         }
     }
 }
Example #52
0
        public JsonResult SaveOrder(Models.m_YueBing model)
        {
            int orgID = int.Parse(DESEncrypt.Decrypt(ViewBag.EnOrgID));
            var goods = sellBLL.GetModel(model.goodsID);

            if (null == goods)
            {
                throw new Exception("该商品已达上限");
            }
            //if (goods.Balance.Value < model.Amount)
            //{
            //    return GetErrorResult("数量不足");
            //}
            ShiMiao.Model.TD_Shop_Order_Consignee consignee = new Model.TD_Shop_Order_Consignee();
            consignee.Address = model.useraddress;
            consignee.Name    = model.username;
            consignee.Phone   = model.userphone;

            var member = MemberData.GetMember();

            Model.TD_Shop_Order order = new Model.TD_Shop_Order();
            order.PayType     = Constants.PayType.WeiXin;
            order.MemberID    = member.MemberID;
            order.HeaderImage = member.HeaderImage;
            order.NickName    = member.NickName;
            order.OrderType   = (int)Constants.DonationType.Shop1;
            order.OrgID       = orgID;
            //月饼常规价格 + 快递费
            decimal ExtraPrice = 0;

            switch (model.ExtraPrice)
            {
            case 0:    //自提
                ExtraPrice = 0;
                break;

            case 1:    //省内
                ExtraPrice = 6;
                break;

            case 2:    //省外
                ExtraPrice = 8;
                break;

            default:    //其他
                ExtraPrice = 8;
                break;
            }
            order.ExtraPrice = ExtraPrice * model.Amount;
            order.OriPrice   = goods.Price * model.Amount + order.ExtraPrice;
            decimal realPrice = goods.Price.Value;

            if (model.Amount >= 5)
            {//优惠价格 + 快递费
                order.RealPrice = 88 * model.Amount + ExtraPrice * model.Amount;
                realPrice       = 88;
            }
            else
            {
                order.RealPrice = order.OriPrice;
            }
            order.Status = (int)Constants.OrderStatus.WaitPay;

            IList <Model.TD_Shop_OrderGoods> orderGoodsList = new List <Model.TD_Shop_OrderGoods>();

            Model.TD_Shop_OrderGoods orderGoods = new Model.TD_Shop_OrderGoods();
            orderGoods.GoodsID   = goods.GoodsID;
            orderGoods.Title     = goods.Title;
            orderGoods.Amount    = model.Amount;
            orderGoods.OrgID     = orgID;
            orderGoods.OriPrice  = goods.Price;
            orderGoods.RealPrice = realPrice;//goods.Price;
            orderGoodsList.Add(orderGoods);
            int result = orderBLL.Save(order, consignee, orderGoodsList);

            if (result > 0)
            {
                string url = string.Empty;
                if (order.PayType == Constants.PayType.WeiXin)
                {
                    url = "/WeiXinPay/PayForShop?oid=" + ViewBag.EnOrgID + "&orderid=" + order.OrderID + "&url=" + HttpUtility.UrlEncode("/Shop/YueBing/Index?oid=" + ViewBag.EnOrgID);
                }
                return(GetSucceedResult(new
                {
                    url = url
                }, ""));
            }
            else
            {
                return(GetErrorResult("保存失败,请稍候再试"));
            }
        }
        private MemberInfoCollection CreateFields(int axisNum)
        {
            if (axisNum == 0)
            {
                m_Columns_LowestMembers.Clear();
                m_Columns_Sorted_LowestMembers.Clear();
            }
            if (axisNum == 1)
            {
                m_Rows_LowestMembers.Clear();
                m_Rows_Sorted_LowestMembers.Clear();
            }

            MemberInfoCollection fields = new MemberInfoCollection(null);

            DateTime start = DateTime.Now;

            // Формируем иерархию элементов MemberInfo
            if (m_CellSet_Descr != null && m_CellSet_Descr.Axes.Count > axisNum)
            {
                int position_Index = 0;
                // Проход по позиция оси
                foreach (PositionData pos in m_CellSet_Descr.Axes[axisNum].Positions)
                {
                    // Глубина оси (кол-во элементов  в позиции)
                    int depth = pos.Members.Count;

                    // Предыдущий элемент в данной позиции
                    MemberInfo prev_member_in_position = null;

                    // Проход по элементам в каждой позици
                    for (int i = 0; i < depth; i++)
                    {
                        if (i > 0 && prev_member_in_position == null)
                        {
                            throw new Exception(String.Format("Ошибка построения иерархии элементов. Не найден описатель для элемента {0} в позиции {1}", i, position_Index));
                        }
                        // Получаем элемент из хранилища, которое является общим для всей оси
                        MemberData member = m_CellSet_Descr.Axes[axisNum].Members[pos.Members[i].Id];
                        if (member == null)
                        {
                            throw new Exception(String.Format("Ошибка построения иерархии элементов. На оси не найден элемент с Id: {0}", pos.Members[i].Id));
                        }

                        if (DataReorganizationType == DataReorganizationTypes.MergeNeighbors)
                        {
                            #region Правила
                            // Правила постоения иерархии:
                            //  1. Получаем для данного элемента PARENT_UNIQUE_NAME.
                            //  2. Определяем КОЛЛЕКЦИЮ, в которую должен попасть элемент:
                            //      - Если это элемент нулевой линии, то ПО УМОЛЧАНИЮ он является кандидатом
                            //        на добавление в коллекцию корневых MemberInfo
                            //      - Если это элемент не нулевой линии, то ПО УМОЛЧАНИЮ он явлется кандидатом
                            //        на добавление в коллекцию Children для MemberInfo предыдущего элемента данной позиции (prev_member_in_position)
                            //  3. Берем последний элемент в КОЛЛЕКЦИИ. Проходим вглубь по его коллекции DrilledDownChildren и строим список из последних элементов каждой из них.
                            //     Проходим по полученному списку от самого глубокого вверх. Если находим элемент, который является родителем для текущего (UNIQUE_NAME совпадает c PARENT_UNIQUE_NAME текущего),
                            //     то КОЛЛЕКЦИЯ меняется на коллецию DrilledDownChildren родителя.

                            // Правила объединения:
                            //  1. Объединению подлежат только следующие друг за другом одинаковые элементы. Но только в том случае, если коллекция DrilledDownChildren у предыдущего является пустой (в противном случае произойдет перемещение ячеек и может потеряться ORDER запроса)
                            //            - В следующем запросе года не должны объединяться чтобы не потерять очередность ячеек, предусмотренную запросом
                            //                     select [Measures].[Internet Sales Amount] DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME , CUSTOM_ROLLUP , UNARY_OPERATOR , KEY0 on 0,
                            //                    {([Date].[Calendar].[Calendar Year].&[2001],  [Product].[Product Categories].[Category].[Bikes]),
                            //                    ([Date].[Calendar].[Calendar Semester].&[2001]&[2], [Product].[Product Categories].[Subcategory].[Mountain Bikes]),
                            //                    ([Date].[Calendar].[Calendar Year].&[2001], [Product].[Product Categories].[Category].[Clothing])}
                            //                    DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME , CUSTOM_ROLLUP , UNARY_OPERATOR , KEY0 on 1
                            //                    from [Adventure Works]
                            //  2. Элементы последней линии (ближайшей к ячейкам) объединению не подлежат
                            #endregion Правила

                            #region Определение места элемента в иерархии
                            // Уникальное имя родителя (Правила постоения иерархии - пункт 1)
                            String parentUniqueName = GetMemberPropertyValue(member, "PARENT_UNIQUE_NAME");
                            // КОЛЛЕКЦИЯ (Правила постоения иерархии - пункт 2)
                            MemberInfoCollection container = i == 0 ? fields : prev_member_in_position.Children;
                            // Ищем родителя (Правила постоения иерархии - пункт 3)
                            if (!String.IsNullOrEmpty(parentUniqueName))
                            {
                                if (container.Count > 0)
                                {
                                    MemberInfo last = container[container.Count - 1];
                                    // Теперь строим коллекцию из последних в каждой коллекции DrilledDownChildren вглубь по всей ветке
                                    List <MemberInfo> dd_last_list = new List <MemberInfo>();
                                    dd_last_list.Add(last);
                                    while (last.DrilledDownChildren.Count > 0)
                                    {
                                        dd_last_list.Add(last.DrilledDownChildren[last.DrilledDownChildren.Count - 1]);
                                        last = last.DrilledDownChildren[last.DrilledDownChildren.Count - 1];
                                    }

                                    for (int x = dd_last_list.Count; x > 0; x--)
                                    {
                                        var info = dd_last_list[x - 1];
                                        if (info.UniqueName == parentUniqueName)
                                        {
                                            container = info.DrilledDownChildren;
                                            break;
                                        }
                                    }
                                }
                            }
                            #endregion

                            #region Объединение элементов
                            if (i != (depth - 1) && container.Count > 0 && container[container.Count - 1].UniqueName == member.UniqueName && container[container.Count - 1].DrilledDownChildren.Count == 0)
                            {
                                // Объединение элементов
                                prev_member_in_position = container[container.Count - 1];
                            }
                            else
                            {
                                // Создание нового элемента
                                prev_member_in_position = CreateMemberInfo(member);
                                container.Add(prev_member_in_position);
                            }

                            // Если элементы одной линии повторяются друг за другом, то свойство DrilledDown у них верное только у последнего
                            if (prev_member_in_position != null && !prev_member_in_position.IsCalculated)
                            {
                                prev_member_in_position.DrilledDown = prev_member_in_position.DrilledDown | pos.Members[i].DrilledDown;
                            }

                            #endregion
                        }

                        if (DataReorganizationType == DataReorganizationTypes.None)
                        {
                            #region Правила
                            // В данном режиме никакой реорганизации и объединения не производится
                            #endregion

                            #region Определение места элемента в иерархии
                            // КОЛЛЕКЦИЯ
                            MemberInfoCollection container = i == 0 ? fields : prev_member_in_position.Children;
                            #endregion

                            #region Объединение элементов
                            // Создание нового элемента
                            prev_member_in_position = CreateMemberInfo(member);
                            container.Add(prev_member_in_position);
                            #endregion
                        }

                        if (DataReorganizationType == DataReorganizationTypes.LinkToParent)
                        {
                            #region Правила
                            // В данном режиме элементы выстраиваются в иерархию используя уникальное имя родителя. При этом в иерархию
                            // выстраивается вся ось.
                            // Например было:
                            //      2002    a
                            //        Q1    b
                            //       H1     c
                            //      2002    d
                            //       H2     e

                            // Перегруппируется в:
                            //      2002    a
                            //      2002    d
                            //       H1     c
                            //        Q1    b
                            //       H2     e

                            //  1. Собираем нервы в кулак.
                            //  2. Определяем КОЛЛЕКЦИЮ, в которую должен попасть элемент:
                            //      - Если это элемент нулевой линии, то ПО УМОЛЧАНИЮ он является кандидатом
                            //        на добавление в коллекцию корневых MemberInfo
                            //      - Если это элемент не нулевой линии, то ПО УМОЛЧАНИЮ он явлется кандидатом
                            //        на добавление в коллекцию Children для MemberInfo предыдущего элемента данной позиции (prev_member_in_position)
                            //  3. КОЛЛЕКЦИЮ выстраиваем в плоский список рекурсивно с учетом ТОЛЬКО DrilledDownChildren.
                            //      Создаем ТЕКУЩИЙ ОПИСАТЕЛЬ (MemberInfo) для данного элемнта
                            //      Проходим с конца списка в начало:
                            //      a) Если находим элемент, который является дочерним для ТЕКУЩЕГО ОПИСАТЕЛЯ, то удаляем его из коллекции, в которой он находился и вставлем его в 0 позицию в коллекцию DriDrilledDownChildren ТЕКУЩЕГО ОПИСАТЕЛЯ
                            //          CONTINUE
                            //      b) Если находим элемент с таким же уник. именем, то:
                            //          - если это последняя линия, то они объединению не подлежат. Коллекция DriDrilledDownChildren у двойника зануляется и ТЕКУЩИЙ ОПИСАТЕЛЬ добавляется следом за ним.
                            //          - если это не последняя линия то объекты объединяются, т.е. двойнику переходит коллекция DriDrilledDownChildren текущего описателя и он будет считаться далее как ТЕКУЩИЙ ОПИСАТЕЛЬ
                            //          CТОП ЦИКЛА
                            //      c) Если находим элемент, который является родителем для данного, то добавляем ТЕКУЩИЙ ОПИСАТЕЛЬ в коллекцию DrilledDownChildren родителя.
                            //          СТОП ЦИКЛА
                            //      d) Если ни 3b) ни 3c) не отработало, то ТЕКУЩИЙ ОПИСАТЕЛЬ добавляется в КОЛЛЕКЦИЮ с учетом номера уровня. Чтобы не получилось что перед ним есть элементы с большим по глубине номером уровня.
                            //          НО если элемент вычисляемый, то уровень не учитываем, а добавляем его в конец КОЛЛЕКЦИИ.
                            //
                            #endregion

                            #region Определение места элемента в иерархии
                            // Выполняем пункт 1 :)

                            // КОЛЛЕКЦИЯ (Правила постоения иерархии - пункт 2)
                            MemberInfoCollection container = i == 0 ? fields : prev_member_in_position.Children;
                            // Выстраиваем в плоский список рекурсивно с учетом ТОЛЬКО DrilledDownChildren
                            List <MemberInfo> line = new List <MemberInfo>();
                            foreach (var item in container)
                            {
                                line.Add(item);
                                line.AddRange(item.CollectDrilledDownChildren());
                            }
                            // Создание нового элемента
                            prev_member_in_position = CreateMemberInfo(member);

                            // Последний из обследуемых элементов КОЛЛЕКЦИИ, чья глубина больше чем у данного
                            MemberInfo reverse_last_leveldepth_member = null;
                            bool       isOk = false;
                            for (int indx = line.Count - 1; indx >= 0; indx--)
                            {
                                var mi = line[indx];

                                if (mi.Container == container && mi.LevelDepth > member.LevelDepth)
                                {
                                    reverse_last_leveldepth_member = mi;
                                }

                                // 3a
                                if (mi.ParentUniqueName == member.UniqueName)
                                {
                                    // Нашли дочерний, цепляем его и тащим за собой
                                    mi.Container.Remove(mi);
                                    prev_member_in_position.DrilledDownChildren.Insert(0, mi);
                                    continue;
                                }

                                // 3b
                                if (mi.UniqueName == member.UniqueName)
                                {
                                    // Найден дубликат
                                    if (i != (depth - 1))
                                    {
                                        // Не последняя линия
                                        mi.DrilledDownChildren.Clear();
                                        foreach (var x in prev_member_in_position.DrilledDownChildren)
                                        {
                                            mi.DrilledDownChildren.Add(x);
                                        }
                                        prev_member_in_position = mi;
                                    }
                                    else
                                    {
                                        // Последняя линия
                                        mi.DrilledDownChildren.Clear();
                                        mi.IsDublicate = true;
                                        // ДОБАВЛЕНИЕ В ИЕРАРХИЮ
                                        mi.Container.Insert(mi.Container.IndexOf(mi) + 1, prev_member_in_position);
                                    }
                                    isOk = true;
                                    break;
                                }

                                // 3c
                                if (mi.UniqueName == prev_member_in_position.ParentUniqueName)
                                {
                                    // Нашли родителя, цепляемся к нему
                                    // ДОБАВЛЕНИЕ В ИЕРАРХИЮ
                                    mi.DrilledDownChildren.Add(prev_member_in_position);
                                    isOk = true;
                                    break;
                                }
                            }

                            // 3d
                            // Более глубокий элемент уровня не найден, значит добавляем хвост КОЛЛЕКЦИИ
                            if (!isOk)
                            {
                                // Если Key0 == null то элемент вычисляемый
                                if (member.IsCalculated)
                                {
                                    // ДОБАВЛЕНИЕ В ИЕРАРХИЮ
                                    container.Add(prev_member_in_position);
                                }
                                else
                                {
                                    if (reverse_last_leveldepth_member != null && container.Contains(reverse_last_leveldepth_member))
                                    {
                                        // ДОБАВЛЕНИЕ В ИЕРАРХИЮ
                                        container.Insert(container.IndexOf(reverse_last_leveldepth_member), prev_member_in_position);
                                    }
                                    else
                                    {
                                        // ДОБАВЛЕНИЕ В ИЕРАРХИЮ
                                        container.Add(prev_member_in_position);
                                    }
                                }
                            }

                            #endregion
                        }

                        if (i == (depth - 1))
                        {
                            if (prev_member_in_position == null)
                            {
                                throw new Exception("Ошибка. Не создан элемент последней линии.");
                            }
                            if (axisNum == 0)
                            {
                                m_Columns_LowestMembers.Add(position_Index, prev_member_in_position);
                                m_Columns_Sorted_LowestMembers.Add(position_Index, prev_member_in_position);
                            }
                            if (axisNum == 1)
                            {
                                m_Rows_LowestMembers.Add(position_Index, prev_member_in_position);
                                m_Rows_Sorted_LowestMembers.Add(position_Index, prev_member_in_position);
                            }

                            prev_member_in_position.MemberIndexInAxis = prev_member_in_position.Sorted_MemberIndexInAxis = position_Index;
                        }
                    }
                    position_Index++;
                }


                if (DataReorganizationType == DataReorganizationTypes.LinkToParent)
                {
                    // Операции по вставке объектов поперепутали MemberOrder для элементов. Исправляем это.
                    // И заодно устанавливаем флаг DrilledDown в true только если у элемента не пустая коллекция DrilledDownChildren
                    foreach (var x in fields)
                    {
                        x.RefreshMemberOrder();
                        x.CrackDrilledDown();
                    }
                }
            }
            DateTime stop = DateTime.Now;

            return(fields);
        }
Example #54
0
 public Admin(MemberData member) : base(member)
 {
 }
Example #55
0
 public void SelectConnectedNode(Component from, bool allConnection = false, Action <NodeComponent> callbackAction = null)
 {
     if (from == null)
     {
         return;
     }
     if (from is BaseEventNode)
     {
         BaseEventNode method = from as BaseEventNode;
         var           flows  = method.GetFlows();
         foreach (var n in flows)
         {
             if (n == null || n.GetTargetNode() == null)
             {
                 continue;
             }
             if (!editorData.selectedNodes.Contains(n.GetTargetNode()))
             {
                 editorData.selectedNodes.Add(n.GetTargetNode());
                 editorData.selected = editorData.selectedNodes;
                 if (allConnection)
                 {
                     SelectConnectedNode(n.GetTargetNode(), allConnection, callbackAction);
                 }
                 SelectionChanged();
                 if (callbackAction != null)
                 {
                     callbackAction(n.GetTargetNode());
                 }
             }
         }
     }
     else if (from is Node)
     {
         Node node = from as Node;
         if (node as StateNode)
         {
             StateNode         eventNode = node as StateNode;
             TransitionEvent[] TE        = eventNode.GetTransitions();
             foreach (TransitionEvent T in TE)
             {
                 if (T.GetTargetNode() != null)
                 {
                     if (!editorData.selectedNodes.Contains(T.GetTargetNode()))
                     {
                         editorData.selectedNodes.Add(T.GetTargetNode());
                         editorData.selected = editorData.selectedNodes;
                         if (allConnection)
                         {
                             SelectConnectedNode(T.GetTargetNode(), allConnection, callbackAction);
                         }
                         SelectionChanged();
                         if (callbackAction != null)
                         {
                             callbackAction(T.GetTargetNode());
                         }
                     }
                 }
             }
         }
         Func <object, bool> validation = delegate(object o) {
             if (o is MemberData)
             {
                 MemberData member = o as MemberData;
                 if (member.targetType == MemberData.TargetType.FlowNode ||
                     member.targetType == MemberData.TargetType.ValueNode)
                 {
                     Node n = member.GetInstance() as Node;
                     if (member.isAssigned && member.GetInstance() is Node)
                     {
                         if (!editorData.selectedNodes.Contains(n))
                         {
                             editorData.selectedNodes.Add(n);
                             editorData.selected = editorData.selectedNodes;
                             if (allConnection)
                             {
                                 SelectConnectedNode(n, allConnection, callbackAction);
                             }
                             SelectionChanged();
                             if (callbackAction != null)
                             {
                                 callbackAction(n);
                             }
                         }
                         //return true;
                     }
                 }
             }
             return(false);
         };
         AnalizerUtility.AnalizeObject(node, validation);
     }
 }
Example #56
0
        public PlanData(MemberPlanData memberMemberPlanData                      = null,
                        MemberPlanData associateMemberPlanData                   = null,
                        MemberPlanData preliminaryMemberPlanData                 = null,
                        MemberPlanData supporterMemberPlanData                   = null,
                        MeetingProgramPlanData workerMeetingProgramPlanData      = null,
                        MeetingProgramPlanData dawahMeetingProgramPlanData       = null,
                        MeetingProgramPlanData stateLeaderMeetingProgramPlanData = null,
                        MeetingProgramPlanData stateOutingMeetingProgramPlanData = null,
                        MeetingProgramPlanData iftarMeetingProgramPlanData       = null,
                        MeetingProgramPlanData learningMeetingProgramPlanData    = null,
                        MeetingProgramPlanData socialDawahMeetingProgramPlanData = null,
                        MeetingProgramPlanData dawahGroupMeetingProgramPlanData  = null,
                        MeetingProgramPlanData nextGMeetingProgramPlanData       = null,

                        MeetingProgramPlanData cmsMeetingProgramPlanData         = null,
                        MeetingProgramPlanData smMeetingProgramPlanData          = null,
                        MeetingProgramPlanData memberMeetingProgramPlanData      = null,
                        MeetingProgramPlanData tafsirMeetingProgramPlanData      = null,
                        MeetingProgramPlanData unitMeetingProgramPlanData        = null,
                        MeetingProgramPlanData familyVisitMeetingProgramPlanData = null,
                        MeetingProgramPlanData eidReunionMeetingProgramPlanData  = null,
                        MeetingProgramPlanData bbqMeetingProgramPlanData         = null,
                        MeetingProgramPlanData gatheringMeetingProgramPlanData   = null,
                        MeetingProgramPlanData otherMeetingProgramPlanData       = null,

                        FinancePlanData baitulMalFinancePlanData                = null,
                        FinancePlanData aDayMasjidProjectFinancePlanData        = null,
                        FinancePlanData masjidTableBankFinancePlanData          = null,
                        SocialWelfarePlanData qardeHasanaSocialWelfarePlanData  = null,
                        SocialWelfarePlanData patientVisitSocialWelfarePlanData = null,
                        SocialWelfarePlanData socialVisitSocialWelfarePlanData  = null,
                        SocialWelfarePlanData transportSocialWelfarePlanData    = null,
                        SocialWelfarePlanData shiftingSocialWelfarePlanData     = null,
                        SocialWelfarePlanData shoppingSocialWelfarePlanData     = null,

                        SocialWelfarePlanData foodDistributionSocialWelfarePlanData = null,
                        SocialWelfarePlanData cleanUpAustraliaSocialWelfarePlanData = null,
                        SocialWelfarePlanData otherSocialWelfarePlanData            = null,

                        MaterialPlanData bookSaleMaterialPlanData         = null,
                        MaterialPlanData bookDistributionMaterialPlanData = null,
                        LibraryStockPlanData bookLibraryStockPlanData     = null,

                        MaterialPlanData otherSaleMaterialPlanData         = null,
                        MaterialPlanData otherDistributionMaterialPlanData = null,
                        LibraryStockPlanData otherLibraryStockPlanData     = null,

                        MaterialPlanData vhsSaleMaterialPlanData         = null,
                        MaterialPlanData vhsDistributionMaterialPlanData = null,
                        LibraryStockPlanData vhsLibraryStockPlanData     = null,

                        MaterialPlanData emailDistributionMaterialPlanData       = null,
                        MaterialPlanData ipdcLeafletDistributionMaterialPlanData = null,


                        TeachingLearningProgramPlanData groupStudyTeachingLearningProgramPlanData                    = null,
                        TeachingLearningProgramPlanData studyCircleTeachingLearningProgramPlanData                   = null,
                        TeachingLearningProgramPlanData practiceDarsTeachingLearningProgramPlanData                  = null,
                        TeachingLearningProgramPlanData stateLearningCampTeachingLearningProgramPlanData             = null,
                        TeachingLearningProgramPlanData quranStudyTeachingLearningProgramPlanData                    = null,
                        TeachingLearningProgramPlanData quranClassTeachingLearningProgramPlanData                    = null,
                        TeachingLearningProgramPlanData memorizingAyatTeachingLearningProgramPlanData                = null,
                        TeachingLearningProgramPlanData stateLearningSessionTeachingLearningProgramPlanData          = null,
                        TeachingLearningProgramPlanData stateQiyamulLailTeachingLearningProgramPlanData              = null,
                        TeachingLearningProgramPlanData studyCircleForAssociateMemberTeachingLearningProgramPlanData = null,
                        TeachingLearningProgramPlanData hadithTeachingLearningProgramPlanData = null,
                        TeachingLearningProgramPlanData weekendIslamicSchoolTeachingLearningProgramPlanData = null,
                        TeachingLearningProgramPlanData memorizingHadithTeachingLearningProgramPlanData     = null,
                        TeachingLearningProgramPlanData memorizingDoaTeachingLearningProgramPlanData        = null,
                        TeachingLearningProgramPlanData otherTeachingLearningProgramPlanData = null)
        {
            AssociateMemberPlanData           = associateMemberPlanData ?? MemberData.Default();
            PreliminaryMemberPlanData         = preliminaryMemberPlanData ?? MemberData.Default();
            SupporterMemberPlanData           = supporterMemberPlanData ?? MemberData.Default();
            WorkerMeetingProgramPlanData      = workerMeetingProgramPlanData ?? MeetingProgramData.Default();
            DawahMeetingProgramPlanData       = dawahMeetingProgramPlanData ?? MeetingProgramData.Default();
            StateLeaderMeetingProgramPlanData = stateLeaderMeetingProgramPlanData ?? MeetingProgramData.Default();
            StateOutingMeetingProgramPlanData = stateOutingMeetingProgramPlanData ?? MeetingProgramData.Default();
            IftarMeetingProgramPlanData       = iftarMeetingProgramPlanData ?? MeetingProgramData.Default();
            LearningMeetingProgramPlanData    = learningMeetingProgramPlanData ?? MeetingProgramData.Default();
            SocialDawahMeetingProgramPlanData = socialDawahMeetingProgramPlanData ?? MeetingProgramData.Default();
            DawahGroupMeetingProgramPlanData  = dawahGroupMeetingProgramPlanData ?? MeetingProgramData.Default();
            NextGMeetingProgramPlanData       = nextGMeetingProgramPlanData ?? MeetingProgramData.Default();

            CmsMeetingProgramPlanData         = cmsMeetingProgramPlanData ?? MeetingProgramData.Default();
            SmMeetingProgramPlanData          = smMeetingProgramPlanData ?? MeetingProgramData.Default();
            MemberMeetingProgramPlanData      = memberMeetingProgramPlanData ?? MeetingProgramData.Default();
            TafsirMeetingProgramPlanData      = tafsirMeetingProgramPlanData ?? MeetingProgramData.Default();
            UnitMeetingProgramPlanData        = unitMeetingProgramPlanData ?? MeetingProgramData.Default();
            FamilyVisitMeetingProgramPlanData = familyVisitMeetingProgramPlanData ?? MeetingProgramData.Default();
            EidReunionMeetingProgramPlanData  = eidReunionMeetingProgramPlanData ?? MeetingProgramData.Default();
            BbqMeetingProgramPlanData         = bbqMeetingProgramPlanData ?? MeetingProgramData.Default();
            GatheringMeetingProgramPlanData   = gatheringMeetingProgramPlanData ?? MeetingProgramData.Default();
            OtherMeetingProgramPlanData       = otherMeetingProgramPlanData ?? MeetingProgramData.Default();


            MemberMemberPlanData = memberMemberPlanData ?? MemberData.Default();

            BaitulMalFinancePlanData         = baitulMalFinancePlanData ?? FinanceData.Default();
            ADayMasjidProjectFinancePlanData = aDayMasjidProjectFinancePlanData ?? FinanceData.Default();
            MasjidTableBankFinancePlanData   = masjidTableBankFinancePlanData ?? FinanceData.Default();

            QardeHasanaSocialWelfarePlanData      = qardeHasanaSocialWelfarePlanData ?? SocialWelfareData.Default();
            PatientVisitSocialWelfarePlanData     = patientVisitSocialWelfarePlanData ?? SocialWelfareData.Default();
            SocialVisitSocialWelfarePlanData      = socialVisitSocialWelfarePlanData ?? SocialWelfareData.Default();
            TransportSocialWelfarePlanData        = transportSocialWelfarePlanData ?? SocialWelfareData.Default();
            ShiftingSocialWelfarePlanData         = shiftingSocialWelfarePlanData ?? SocialWelfareData.Default();
            ShoppingSocialWelfarePlanData         = shoppingSocialWelfarePlanData ?? SocialWelfareData.Default();
            FoodDistributionSocialWelfarePlanData = foodDistributionSocialWelfarePlanData ?? SocialWelfareData.Default();
            CleanUpAustraliaSocialWelfarePlanData = cleanUpAustraliaSocialWelfarePlanData ?? SocialWelfareData.Default();
            OtherSocialWelfarePlanData            = otherSocialWelfarePlanData ?? SocialWelfareData.Default();

            BookSaleMaterialPlanData         = bookSaleMaterialPlanData ?? MaterialData.Default();
            BookDistributionMaterialPlanData = bookDistributionMaterialPlanData ?? MaterialData.Default();
            BookLibraryStockPlanData         = bookLibraryStockPlanData ?? LibraryStockData.Default();

            OtherSaleMaterialPlanData         = otherSaleMaterialPlanData ?? MaterialData.Default();
            OtherDistributionMaterialPlanData = otherDistributionMaterialPlanData ?? MaterialData.Default();
            OtherLibraryStockPlanData         = otherLibraryStockPlanData ?? LibraryStockData.Default();

            VhsSaleMaterialPlanData                 = vhsSaleMaterialPlanData ?? MaterialData.Default();
            VhsDistributionMaterialPlanData         = vhsDistributionMaterialPlanData ?? MaterialData.Default();
            VhsLibraryStockPlanData                 = vhsLibraryStockPlanData ?? LibraryStockData.Default();
            EmailDistributionMaterialPlanData       = emailDistributionMaterialPlanData ?? MaterialData.Default();
            IpdcLeafletDistributionMaterialPlanData = ipdcLeafletDistributionMaterialPlanData ?? MaterialData.Default();



            GroupStudyTeachingLearningProgramPlanData           = groupStudyTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            StudyCircleTeachingLearningProgramPlanData          = studyCircleTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            PracticeDarsTeachingLearningProgramPlanData         = practiceDarsTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            StateLearningCampTeachingLearningProgramPlanData    = stateLearningCampTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            QuranStudyTeachingLearningProgramPlanData           = quranStudyTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            QuranClassTeachingLearningProgramPlanData           = quranClassTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            MemorizingAyatTeachingLearningProgramPlanData       = memorizingAyatTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            StateLearningSessionTeachingLearningProgramPlanData = stateLearningSessionTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            StateQiyamulLailTeachingLearningProgramPlanData     = stateQiyamulLailTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();

            StudyCircleForAssociateMemberTeachingLearningProgramPlanData = studyCircleForAssociateMemberTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            HadithTeachingLearningProgramPlanData = hadithTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            WeekendIslamicSchoolTeachingLearningProgramPlanData = weekendIslamicSchoolTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            MemorizingHadithTeachingLearningProgramPlanData     = memorizingHadithTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            MemorizingDoaTeachingLearningProgramPlanData        = memorizingDoaTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
            OtherTeachingLearningProgramPlanData = otherTeachingLearningProgramPlanData ?? TeachingLearningProgramData.Default();
        }
Example #57
0
        /// <summary>
        /// /kcsapi/api_req_battle_midnight/sp_midnight
        /// 開幕夜戦
        /// </summary>
        /// <param name="JSON"></param>
        /// <param name="_memberShip"></param>
        /// <param name="_memberDeck"></param>
        /// <param name="_masterShip"></param>
        public void ProcessNightBattle(string JSON, MemberData.Ship _memberShip,
            MemberData.Deck _memberDeck, MasterData.Ship _masterShip, MasterData.Item _masterItem)
        {
            var json = JsonConvert.DeserializeObject<KCB.api_req_sortie.Battle>(JSON);
            if (json == null)
                return;
            if (json.api_result != 1)
                return;
            var deck_info = _memberDeck.GetFleet(json.api_data.api_deck_id);

            initializeShipData(json.api_data, deck_info, _memberShip, _masterShip);
            getHougekiDamage(json.api_data.api_hougeki, _battleResult,_masterItem);
        }
Example #58
0
        private MemberInfoCollection CreateFields(int axisNum)
        {
            if (axisNum == 0)
            {
                m_Columns_LowestMembers.Clear();
            }
            if (axisNum == 1)
            {
                m_Rows_LowestMembers.Clear();
            }

            MemberInfoCollection fields = new MemberInfoCollection(null);
            Dictionary <int, List <MemberInfo> > tmp = new Dictionary <int, List <MemberInfo> >();

            if (m_CellSet_Descr != null && m_CellSet_Descr.Axes.Count > axisNum)
            {
                int position_Index = 0;
                foreach (PositionData pos in m_CellSet_Descr.Axes[axisNum].Positions)
                {
                    MemberInfoCollection container = fields;
                    int depth = pos.Members.Count;
                    for (int i = 0; i < pos.Members.Count; i++)
                    {
                        List <MemberInfo> line = null;
                        if (tmp.ContainsKey(i))
                        {
                            line = tmp[i];
                        }
                        else
                        {
                            line = new List <MemberInfo>();
                            tmp.Add(i, line);
                        }

                        MemberData member = m_CellSet_Descr.Axes[axisNum].Members[pos.Members[i].Id];

                        // Если PARENT_UNIQUE_NAME запрашивалось то берем его, иначе будем спрашивать у куба
                        String parentUniqueName = GetMemberPropertyValue(member, "PARENT_UNIQUE_NAME");

                        // Если родитель является DrilledDown, то данный элемент должен попасть в коллекцию DrilledDownChildren
                        MemberInfo parentInfo = null;
                        try
                        {
                            if (!String.IsNullOrEmpty(parentUniqueName))
                            {
                                int posIndex = ReversePos(line, parentUniqueName);
                                if (posIndex > -1)
                                {
                                    parentInfo = line[posIndex];
                                }

                                if (parentInfo != null && parentInfo.DrilledDown)
                                {
                                    // Если линия не нулевая. То объект должен попать в коллекцию DrilledDown только в том случае если и владелец данной коллекции и сам элемент, который мы проверяем пересекаются с одним и тем же элементом
                                    // Ситуацию можно увидеть в запросе

                                    /*select [Measures].[Internet Sales Amount] on 0,
                                     * {([Date].[Calendar].[Calendar Year].&[2001],  [Product].[Product Categories].[Category].[Bikes]),
                                     * ([Date].[Calendar].[Calendar Semester].&[2001]&[2], [Product].[Product Categories].[Subcategory].[Mountain Bikes]),
                                     * ([Date].[Calendar].[Calendar Year].&[2001], [Product].[Product Categories].[Category].[Clothing])}
                                     * on 1
                                     * from [Adventure Works]*/
                                    if (i == 0 ||
                                        (i > 0 && tmp[i - 1][posIndex] != null && tmp[i - 1][position_Index] != null && tmp[i - 1][posIndex] == tmp[i - 1][position_Index]))
                                    {
                                        container = parentInfo.DrilledDownChildren;
                                    }
                                }
                            }
                            else
                            {
                                // Если это нулевой элемент на линии, то он однозначно должен находиться в коллекции Children
                                // Иначе он может попасть в коллекцию DrilledDown если у предыдущего элемента установлен флаг DrilledDown
                                if (position_Index > 0)
                                {
                                    MemberInfo prevInLine = line[line.Count - 1];
                                    if (prevInLine != null && prevInLine.UniqueName != member.UniqueName && prevInLine.DrilledDown)
                                    {
                                        // Для вычисляемых элементов свойство DrilledDown работает неправильно. И в этом случае считаем что для того чтобы элемент попал в коллекцию DrilledDown у него должна быть и глубина уровня больше чем у предыдущего
                                        if (prevInLine.LevelDepth < member.LevelDepth)
                                        {
                                            // Если линия не нулевая. То объект должен попать в коллекцию DrilledDown только в том случае если и владелец данной коллекции и сам элемент, который мы проверяем пересекаются с одним и тем же элементом
                                            // Ситуацию можно увидеть в запросе

                                            /*select [Measures].[Internet Sales Amount] on 0,
                                             * {([Date].[Calendar].[Calendar Year].&[2001],  [Product].[Product Categories].[Category].[Bikes]),
                                             * ([Date].[Calendar].[Calendar Semester].&[2001]&[2], [Product].[Product Categories].[Subcategory].[Mountain Bikes]),
                                             * ([Date].[Calendar].[Calendar Year].&[2001], [Product].[Product Categories].[Category].[Clothing])}
                                             * on 1
                                             * from [Adventure Works]*/
                                            if (i == 0 ||
                                                (i > 0 && tmp[i - 1][line.Count - 1] != null && tmp[i - 1][position_Index] != null && tmp[i - 1][line.Count - 1] == tmp[i - 1][position_Index]))
                                            {
                                                container = prevInLine.DrilledDownChildren;
                                            }
                                        }
                                        else
                                        {
                                            // Пытаемся исправить то, что для вычисляемых элементов свойство DrilledDown работает неправильно.
                                            prevInLine.DrilledDown = false;
                                        }
                                    }
                                }
                            }
                        }
                        catch (System.NotSupportedException)
                        {
                        }

                        // Если элемент существует, то он должен быть последним
                        // Если он окажется не последним, то это значит что эти элементы объединению не подлежат и нужно создавать новый элемент
                        MemberInfo field = null;
                        if (line.Count > 0)
                        {
                            field = line[line.Count - 1];
                        }
                        // Элементы последней линии объединению не подлежат
                        if (field == null || field.UniqueName != member.UniqueName || i == (depth - 1) || (field.Parent != null && container.m_Owner != null && field.Parent != container.m_Owner))
                        {
                            field = CreateMemberInfo(member);
                            line.Add(field);
                            // Важно чтобы добавление в контейнер было после добавления в линию, т.к. в Add идет установка Parent
                            container.Add(field);

                            if (i == (depth - 1))
                            {
                                if (axisNum == 0)
                                {
                                    m_Columns_LowestMembers.Add(field);
                                }
                                if (axisNum == 1)
                                {
                                    m_Rows_LowestMembers.Add(field);
                                }
                            }
                        }
                        else
                        {
                            line.Add(field);
                        }


                        if (field != null && !field.IsCalculated)
                        {
                            field.DrilledDown = field.DrilledDown | pos.Members[i].DrilledDown;
                        }

                        container = field.Children;
                    }
                    position_Index++;
                }
            }

            return(fields);
        }
Example #59
0
        public void InsertList(List <InsureCarData> listItem)
        {
            try
            {
                MemberData member = (MemberData)DataCommon.Get("DATA.MEMBER");
                int        row    = 1;

                SqlCommand cmd;
                string     query = "";

                StringBuilder sql;
                foreach (InsureCarData item in listItem)
                {
                    DBbase.Connect();
                    sql = new StringBuilder();
                    sql.Append(@"INSERT INTO MA_INSURE_CAR (INSURE_CAR_CODE, COMPANY_CODE, PACKAGE_NAME, CAR_ID, INSURE_CATEGORY,INSURE_TYPE_REPAIR,CAR_YEAR,LIVE_COVERAGE_PEOPLE,
                LIVE_COVERAGE_TIME,ASSET_TIME,DAMAGE_TO_VEHICLE,MISSING_FIRE_CAR,FIRST_DAMAGE_PRICE,PERSONAL_ACCIDENT_AMT,PERSONAL_ACCIDENT_PEOPLE,MEDICAL_FEE_AMT,
                MEDICAL_FEE_PEOPLE,DRIVER_INSURANCE_AMT,NET_PRICE,TOTAL_PRICE,PRICE_ROUND,CAPITAL_INSURANCE,INSURE_PRIORITY,EFFECTIVE_DATE,EXPIRE_DATE,CONFIDENTIAL_STATUS,
                INSURE_CAR_STATUS,CREATE_DATE,CREATE_USER,UPDATE_DATE,UPDATE_USER)  VALUES ");
                    string INSURE_CAR_CODE = DateTime.Now.ToString("yyyyMMdd") + "-" + item.COMPANY_CODE.ToUpper() + "-" + item.PACKAGE_NAME;
                    INSURE_CAR_CODE += "-" + item.CAR_ID + "-" + item.INSURE_CATEGORY;
                    INSURE_CAR_CODE += (item.INSURE_TYPE_REPAIR == "ศูนย์") ? "C" : "G" + "-" + item.CAR_YEAR;

                    sql.Append("( N'" + INSURE_CAR_CODE + "',");
                    sql.Append(" N'" + item.COMPANY_CODE.ToUpper() + "',");
                    sql.Append(" N'" + item.PACKAGE_NAME + "',");
                    sql.Append(" '" + item.CAR_ID + "',");
                    sql.Append(" N'" + item.INSURE_CATEGORY + "',");
                    sql.Append(" N'" + item.INSURE_TYPE_REPAIR + "',");

                    sql.Append(" N'" + item.CAR_YEAR + "',");
                    sql.Append(" '" + item.LIVE_COVERAGE_PEOPLE + "',");
                    sql.Append(" '" + item.LIVE_COVERAGE_TIME + "',");
                    sql.Append(" '" + item.ASSET_TIME + "',");
                    sql.Append(" '" + item.DAMAGE_TO_VEHICLE + "',");

                    sql.Append(" '" + item.MISSING_FIRE_CAR + "',");
                    sql.Append(" '" + item.FIRST_DAMAGE_PRICE + "',");
                    sql.Append(" '" + item.PERSONAL_ACCIDENT_AMT + "',");
                    sql.Append(" '" + item.PERSONAL_ACCIDENT_PEOPLE + "',");
                    sql.Append(" '" + item.MEDICAL_FEE_AMT + "',");

                    sql.Append(" '" + item.MEDICAL_FEE_PEOPLE + "',");
                    sql.Append(" '" + item.DRIVER_INSURANCE_AMT + "',");
                    sql.Append(" '" + item.NET_PRICE + "',");
                    sql.Append(" '" + item.TOTAL_PRICE + "',");
                    sql.Append(" '" + item.PRICE_ROUND + "',");

                    sql.Append(" '" + item.CAPITAL_INSURANCE + "',");
                    sql.Append(" '" + item.INSURE_PRIORITY + "',");
                    sql.Append(" '" + ConvertCommon.ConvertDateTime(item.EFFECTIVE_DATE) + "',");
                    sql.Append(" '" + ConvertCommon.ConvertDateTime(item.EXPIRE_DATE) + "',");
                    sql.Append(" '" + item.CONFIDENTIAL_STATUS + "',");

                    sql.Append(" '" + item.INSURE_CAR_STATUS + "',");
                    sql.Append(" '" + ConvertCommon.ConvertDateTime(DateTime.Now) + "',");
                    sql.Append(" '" + member.MEMBER_USER + "',");
                    sql.Append(" '" + ConvertCommon.ConvertDateTime(DateTime.Now) + "',");
                    sql.Append(" '" + member.MEMBER_USER + "') ");

                    row++;

                    try
                    {
                        query = sql.ToString();
                        cmd   = new SqlCommand(query.Remove(query.Length - 1), DBbase.con);
                        cmd.ExecuteNonQuery();
                    }
                    catch (SqlException exception)
                    {
                        if (exception.Number == 1062) // Cannot insert duplicate key row in object error
                        {
                        }
                        else
                        {
                            throw exception; // throw exception if this exception is unexpected
                        }
                    }
                    DBbase.DisConnect();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #60
0
 public EndpointException(string message, MemberData method) : base($"An error occurred while creating the endpoint {method.Path}: {message}")
 {
 }