예제 #1
0
        public HttpResponseMessageWrapper<Constants> Get(HttpRequestMessage req)
        {
            // no need to authenticate
            //HttpStatusCode code = ResourceHelper.AuthenticateUser(req, TaskStore);
            //if (code != HttpStatusCode.OK)
            //    return new HttpResponseMessageWrapper<Constants>(req, code);  // user not authenticated

            TaskStore taskstore = TaskStore;

            try
            {
                var actions = taskstore.Actions.OrderBy(a => a.SortOrder).ToList<TaskStoreServerEntities.Action>();
                var colors = taskstore.Colors.OrderBy(c => c.ColorID).ToList<Color>();
                var fieldTypes = taskstore.FieldTypes.OrderBy(ft => ft.FieldTypeID).ToList<FieldType>();
                var listTypes = taskstore.ListTypes.Where(l => l.UserID == null).Include("Fields").ToList<ListType>();  // get the built-in listtypes
                var priorities = taskstore.Priorities.OrderBy(p => p.PriorityID).ToList<Priority>();
                var constants = new Constants() { Actions = actions, Colors = colors, FieldTypes = fieldTypes, ListTypes = listTypes, Priorities = priorities };
                return new HttpResponseMessageWrapper<Constants>(req, constants, HttpStatusCode.OK);
            }
            catch (Exception)
            {
                // constants not found - return 404 Not Found
                return new HttpResponseMessageWrapper<Constants>(req, HttpStatusCode.NotFound);
            }
        }
예제 #2
0
 public GameOptions(string TeamOneName, string TeamTwoName, Constants.GameTypeEnumeration GameType, ushort GameLimit)
 {
     this.teamOneNameField = TeamOneName;
     this.teamTwoNameField = TeamTwoName;
     this.gameLimitField = GameLimit;
     this.gameTypeField = GameType;
 }
예제 #3
0
        public TestEvent(Constants.Event eventType, Constants.Phase phase, Constants.SubPhase subphase, string notes)
        {
            this.EventType = eventType;
            this.Phase = phase;
            this.SubPhase = subphase;
            this.Notes = notes;
            this.Time = DateTime.Now;
            this.X = -1;
            this.Y = -1;
            this.Alt = false;
            this.Ctrl = false;
            this.Shift = false;
            this.TargetString = string.Empty;
            switch(this.SubPhase)
            {
                case Constants.SubPhase.FreePractice:
                    this.subphaseRepetitionNumber = Session.Instance.TimesInFreePractice;
                    break;

                case Constants.SubPhase.ForcedPractice:
                    this.subphaseRepetitionNumber = Session.Instance.TimesInForcedPractice;
                    break;

                case Constants.SubPhase.Verify:
                    this.subphaseRepetitionNumber = Session.Instance.TimesInVerify;
                    break;

                default:
                    this.subphaseRepetitionNumber = 0;
                    break;
            }
        }
예제 #4
0
        public TurnPacket(Objects.Client c, Constants.Direction direction)
            : base(c)
        {
            Direction = direction;

            switch (direction)
            {
                case Tibia.Constants.Direction.Down:
                    Type = OutgoingPacketType.TurnDown;
                    break;
                case Tibia.Constants.Direction.Up:
                    Type = OutgoingPacketType.TurnUp;
                    break;
                case Tibia.Constants.Direction.Right:
                    Type = OutgoingPacketType.TurnRight;
                    break;
                case Tibia.Constants.Direction.Left:
                    Type = OutgoingPacketType.TurnLeft;
                    break;
                default:
                    throw new ArgumentOutOfRangeException(
                        "direction",
                        "Valid directions for turning are Up, Right, Down, and Left.");
            }

            Destination = PacketDestination.Server;
        }
예제 #5
0
파일: Log.cs 프로젝트: sonicwang1989/lphant
 public static void Log(Constants.Log importance, string message)
 {
     #if !DEBUG
     if (importance==Constants.Log.Verbose) return;
     #endif
     CKernel.NewLogMessage(importance,CKernel.Globalization[message]);
 }
예제 #6
0
 public void LoadPageView(Constants.PageViewID PageViewID)
 {
     switch (PageViewID)
     {
         case Constants.PageViewID.HomePageView:
             this.mainWindow.Content = this.homePageView;
             break;
         case Constants.PageViewID.SearchPageView:
             this.mainWindow.Content = this.searchPageView;
             NIKernel.Instance.SearchPageView.ShowTopTextBox.Text = Properties.Settings.Default.SearchShowTopValue;
             break;
         case Constants.PageViewID.HelpPageView:
             this.mainWindow.Content = this.helpPageView;
             break;
         case Constants.PageViewID.SettingsPageView:
             this.mainWindow.Content = this.settingsPageView;
             break;
         case Constants.PageViewID.MapViewPage:
             this.mainWindow.Content = this.mapPageView;
             break;
         default:
             this.mainWindow.Content = this.homePageView;
             break;
     }
 }
        internal double CostForLineSwitch(ILine from,
                                          Constants.LineDirection fromDirection,
                                          ILine to,
                                          Constants.LineDirection toDirection)
        {
            double cost = double.MaxValue;

            if ( fromDirection == Constants.LineDirection.Forward &&
                 toDirection == Constants.LineDirection.Forward )
            {
                cost = from.EndPoint.DistanceTo(to.StartPoint);
            }
            else if ( fromDirection == Constants.LineDirection.Forward &&
                      toDirection == Constants.LineDirection.Reverse )
            {
                cost = from.EndPoint.DistanceTo(to.EndPoint);
            }
            else if ( fromDirection == Constants.LineDirection.Reverse &&
                      toDirection == Constants.LineDirection.Forward )
            {
                cost = from.StartPoint.DistanceTo(to.StartPoint);
            }
            else if ( fromDirection == Constants.LineDirection.Reverse &&
                      toDirection == Constants.LineDirection.Reverse )
            {
                cost = from.StartPoint.DistanceTo(to.EndPoint);
            }

            return cost;
        }
예제 #8
0
    public static GameObject CreateStone(Constants.StoneColor color, Vector3 position)
    {
        GameObject stone = safeInitialize(Constants.StonePrefabName, position);
        stone.GetComponent<StoneView> ().StoneColor = color;

        return stone;
    }
예제 #9
0
        private static bool FnMatch(string pattern, string path, Constants flags)
        {
            if (pattern.Length == 0)
            {
                return path.Length == 0;
            }

            var pathName = ((flags & Constants.PathName) != 0);
            var noEscape = ((flags & Constants.NoEscape) != 0);
            var regexPattern = PatternToRegex(pattern, pathName, noEscape);
            if (regexPattern.Length == 0)
            {
                return false;
            }

            if (((flags & Constants.DotMatch) == 0) && path.Length > 0 && path[0] == '.')
            {
                // Starting dot requires an explicit dot in the pattern
                if (regexPattern.Length < 4 || regexPattern[2] != '[' || regexPattern[3] != '.')
                {
                    return false;
                }
            }

            var options = RegexOptions.None;
            if ((flags & Constants.IgnoreCase) != 0)
            {
                options |= RegexOptions.IgnoreCase;
            }
            var match = Regex.Match(path, regexPattern, options);
            return match != null && match.Success && (match.Length == path.Length);
        }
        public void ThenIShouldSeeAListOfAnalysisWithStarting(Constants.SearchResultColoumnName coloumnName, string searchFilterText)
        {
            BasePage.WaitForAjax(10, true);

            switch (coloumnName)
            {
                case Constants.SearchResultColoumnName.Id:
                    {
                        Assert.IsTrue(CreateComparisonPage.IsAnalysisIdStartsWith(searchFilterText),
                            "All analysis Id on list does not begin with " + searchFilterText);
                    }
                    break;
                case Constants.SearchResultColoumnName.Name:
                    {

                        Assert.IsTrue(CreateComparisonPage.IsAnalysisNameStartsWith(searchFilterText),
                            "All analysis Name on list does not begin with " + searchFilterText);
                    }
                    break;
                case Constants.SearchResultColoumnName.Definition:
                    {
                        Assert.IsTrue(CreateComparisonPage.IsAnalysisDefinitionStartsWith(searchFilterText),
                            "All analysis Definition on list does not begin with " + searchFilterText);
                    }
                    break;
                default:
                    {
                        throw new AssertionException("Field not defined in test framework.");
                    }
            }
        }
예제 #11
0
파일: Logger.cs 프로젝트: jltrem/jsnlog
        public void Log(Constants.Level level, string loggerName, string message)
        {
            ILog log = LogManager.GetLogger(loggerName);

            switch (level)
            {
                case Constants.Level.TRACE:
                    log.Trace(message);
                    break;

                case Constants.Level.DEBUG:
                    log.Debug(message);
                    break;

                case Constants.Level.INFO:
                    log.Info(message);
                    break;

                case Constants.Level.WARN:
                    log.Warn(message);
                    break;

                case Constants.Level.ERROR:
                    log.Error(message);
                    break;

                case Constants.Level.FATAL:
                    log.Fatal(message);
                    break;

                default:
                    throw new Exception(string.Format("Logger.Log - unknown level={0}", level));
            }
        }
예제 #12
0
 public QrResultModel(Constants.ResultTypes resultType)
 {
     using (ResultsService service = new ResultsService())
     {
         Result = service.GetResultText(resultType);
     }
 }
예제 #13
0
        internal IPolylineSegment CreatePolylineSegmentFromDto(SegmentDto segment,
                                                               Constants.CircleOrigin origin)
        {
            IPolylineSegment polylineSegment;

            var dto = segment as ArcSegmentDto;
            if ( dto != null )
            {
                polylineSegment = CreateTurnCircleArcSegment(dto,
                                                             origin);
            }
            else
            {
                var segmentDto = segment as LineSegmentDto;
                if ( segmentDto != null )
                {
                    polylineSegment = CreateLineFromLineDto(segmentDto);
                }
                else
                {
                    throw new ArgumentException(
                        "Unknown polyline segment {0}!".Inject(segment.GetType().FullName));
                }
            }

            return polylineSegment;
        }
        public void ThenTheFieldShouldBeHiglightedIn(Constants.LoginFields fieldName, Constants.Colour colour)
        {
            var expectedRgbaColour = Utilities.GetRgbaColour(colour);
            Assert.NotNull(expectedRgbaColour);

            string actualColour;
            switch (fieldName)
            {
                case Constants.LoginFields.Email:
                {
                    actualColour = LoginPage.EmailValidationColor;
                }
                    break;
                case Constants.LoginFields.Password:
                {
                    actualColour = LoginPage.PasswordValidationColor;
                }
                    break;
                default:
                {
                    throw new AssertionException("No field name defined in test framework");
                }
            }
            Assert.NotNull(expectedRgbaColour);

            Assert.AreEqual(expectedRgbaColour, actualColour);
        }
예제 #15
0
        public void Connect(string username, string password, Constants.Server.Region region)
        {
            if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password) || region == Constants.Server.Region.UNK)
                throw new ArgumentException("Username, password or region is emtpy");

            var address = _serverAddresses.Single(o => o.Key == region).Value;

            XMPPClient.UserName = username;
            XMPPClient.Password = _passPrefix + password;
            XMPPClient.Server = address;
            XMPPClient.Domain = _domain;
            XMPPClient.Resource = "xiff";
            XMPPClient.Port = 5223;

            XMPPClient.UseTLS = true;

            XMPPClient.UseOldStyleTLS = true;

            XMPPClient.AutoAcceptPresenceSubscribe = false;
            XMPPClient.AutomaticallyDownloadAvatars = false;
            XMPPClient.RetrieveRoster = true;

            XMPPClient.OnStateChanged += XMPPClient_OnStateChanged;
            XMPPClient.OnRetrievedRoster += XMPPClient_OnRetrievedRoster;
            XMPPClient.OnNewConversationItem += XMPPClient_OnNewConversationItem;
            XMPPClient.Connect();
        }
예제 #16
0
        public FloatingText(String text, Constants.FloatingTextType type, Vector2 position)
        {
            this.text = text;
            this.type = type;
            this.position = position;

            if (type == Constants.FloatingTextType.Emphasised)
            {
                velocity = Vector2.Zero;
                textColor = Color.White;

                scale = 1.3f;
            }
            else
            {
                int r = rand.Next(0, 100);

                if (r <= 50)
                {
                    velocity = new Vector2(2, -5);
                    acceleration = new Vector2(0.125f, 0.175f);
                }
                else
                {
                    velocity = new Vector2(-2, -5);
                    acceleration = new Vector2(-0.125f, 0.175f);
                }
            }
        }
예제 #17
0
파일: Sprite.cs 프로젝트: fordream/Sunfish
 public Sprite(Texture2D texture, Vector2 position, Constants.ViewLayer layer, SpriteFraming framing)
     : base(position, framing.FrameRectangle.Width, framing.FrameRectangle.Height, layer, true)
 {
     Texture = texture;
     Framing = framing;
     Framing.SpriteForFraming = this;
 }
 private static void AssertLine(ILine actual,
                                int expectedId,
                                double expectedX1,
                                double expectedY1,
                                double expectedX2,
                                double expectedY2,
                                bool isUnknown,
                                Constants.LineDirection direction)
 {
     Assert.AreEqual(expectedId,
                     actual.Id,
                     "Id");
     Assert.AreEqual(expectedX1,
                     actual.X1,
                     "X1");
     Assert.AreEqual(expectedY1,
                     actual.Y1,
                     "Y1");
     Assert.AreEqual(expectedX2,
                     actual.X2,
                     "X2");
     Assert.AreEqual(expectedY2,
                     actual.Y2,
                     "Y2");
     Assert.AreEqual(isUnknown,
                     actual.IsUnknown,
                     "IsUnknown");
     Assert.AreEqual(direction,
                     actual.RunDirection,
                     "RunDirection");
 }
예제 #19
0
        public MovePacket(Objects.Client c, Constants.Direction direction)
            : base(c)
        {
            Direction = direction;

            switch (direction)
            {
                case Tibia.Constants.Direction.Down:
                    Type = OutgoingPacketType.MoveDown;
                    break;
                case Tibia.Constants.Direction.Up:
                    Type = OutgoingPacketType.MoveUp;
                    break;
                case Tibia.Constants.Direction.Right:
                    Type = OutgoingPacketType.MoveRight;
                    break;
                case Tibia.Constants.Direction.Left:
                    Type = OutgoingPacketType.MoveLeft;
                    break;
                case Tibia.Constants.Direction.DownLeft:
                    Type = OutgoingPacketType.MoveDownLeft;
                    break;
                case Tibia.Constants.Direction.DownRight:
                    Type = OutgoingPacketType.MoveDownRight;
                    break;
                case Tibia.Constants.Direction.UpLeft:
                    Type = OutgoingPacketType.MoveUpLeft;
                    break;
                case Tibia.Constants.Direction.UpRight:
                    Type = OutgoingPacketType.MoveUpRight;
                    break;
            }

            Destination = PacketDestination.Server;
        }
        public void ThenIShouldBeOnTheInsightPage(Constants.Page pageType)
        {
            string expectedPageTitle;

            switch (pageType)
            {
                case Constants.Page.Main:
                {
                    expectedPageTitle = Constants.PageTitle.Main;
                }
                    break;
                case Constants.Page.Login:
                {
                    expectedPageTitle = Constants.PageTitle.Login;
                }
                    break;
                case Constants.Page.ForgotPassword:
                {
                    expectedPageTitle = Constants.PageTitle.ForgotPassword;
                }
                    break;

                default:
                {
                    throw new AssertionException(pageType + " not defined in the test framework!");
                }
            }

            Assert.IsTrue(BasePage.GetCurrentPageTitle().StartsWith(expectedPageTitle), "Page title not as expected.");
        }
예제 #21
0
파일: Label.cs 프로젝트: fordream/Sunfish
 public Label(string text, Font labelFont, Color textColor, Vector2 position, Constants.ViewLayer layer)
     : base(position, layer)
 {
     LabelFont = labelFont;
     Height = LabelFont.FontHeight;
     TextColor = textColor;
     SetText (text);
 }
예제 #22
0
 public Platform(Game game, Constants c)
     : base(game)
 {
     mConstants = c;
     rand = new Random();
     mPlatformTextures = new List<Texture2D>();
     platformSpeed = mConstants.PlatformSpeed;
 }
예제 #23
0
 static void Main()
 {
     Console.WriteLine(Constants.PI);
     Constants c = new Constants(5);
     Console.WriteLine(c.Size);
     //c.Size = 10; // Compilation error: readonly field
     //Console.WriteLine(Constants.Size); // compile error
 }
예제 #24
0
 // This method basically populates the block names in the search selection drop down box.
 public IEnumerable<string> GetBlocksFromDataTable(Constants.DataTables DesiredDataTable)
 {
     IEnumerable<string> results =
         (from myRow in ODCDataSet.Tables[(int)DesiredDataTable].AsEnumerable()
          select myRow.Field<string>("Block").Substring(myRow.Field<string>("Block").IndexOf(" ") + 3).ToUpper()).Distinct();
     results = results.OrderBy(block => block.ToString());
     return results;
 }
예제 #25
0
 /// <summary>
 /// Walk in the specified direction
 /// </summary>
 /// <param name="direction"></param>
 /// <returns></returns>
 public bool Walk(Constants.Direction direction)
 {
     byte[] packet = new byte[3];
     packet[0] = 0x01;
     packet[1] = 0x00;
     packet[2] = Convert.ToByte(0x65 + direction);
     return client.Send(packet);
 }
예제 #26
0
        private bool ValidateStation(ref string name)
        {
            var allStations = new Constants().GetStations().ToList();

            var station = name;
            name = allStations.FirstOrDefault(x => String.Compare(x, station, StringComparison.OrdinalIgnoreCase) == 0);

            return name != null;
        }
예제 #27
0
        public SplashState()
        {
            m_background = MainGame.Instance.Content.Load<Texture2D>(@"Textures/Splash_Background");
            m_font = MainGame.Instance.Content.Load<SpriteFont>(@"Fonts/MenuFont");

            m_constant = new Constants();

            LoadDictionary();
        }
        public PackDetails(uint packId, Constants.Currency currency = Constants.Currency.COINS, uint useCredits = 0, bool usePreOrder = false)
        {
            if (packId <= 0) throw new ArgumentException("Invalid Pack Id");

            Currency = currency;
            PackId = packId;
            UseCredits = useCredits;
            UsePreOrder = usePreOrder;
        }
예제 #29
0
 /// <summary>
 /// Turn to the specified direction.
 /// </summary>
 /// <param name="direction"></param>
 /// <returns></returns>
 public bool Turn(Constants.Direction direction)
 {
     byte[] packet = new byte[3];
     packet[0] = 0x01;
     packet[1] = 0x00;
     packet[2] = Convert.ToByte(0x6F + direction);
     return client.Player.Turn(direction);
     //return client.Player.Turn(direction);
 }
예제 #30
0
파일: Vip.Character.cs 프로젝트: KyLuaa/bot
 public Character(Client client, int address, uint id, string name, bool online, Constants.Vip.Icons icon)
 {
     this.Client = client;
     this.Address = address;
     this.ID = id;
     this.Name = name;
     this.Online = online;
     this.Icon = icon;
 }
예제 #31
0
    public static void Upd()
    {
        corpus = GameController.tile[TileInfo.numshown].City.Buildings;
        crew   = GameController.tile[TileInfo.numshown].City.People;

        bool[] clickablebutton = new bool[] { true, true, true, true, true, true, true, true, true, true };

        if (crew.Idle == 0)
        {
            clickablebutton[0] = false;
            clickablebutton[3] = false;
            clickablebutton[6] = false;
        }


        if (corpus.WorkedSawmill == corpus.SawmillWorkPlaces)
        {
            clickablebutton[0] = false;
        }
        if (corpus.WorkedMine == corpus.MineWorkPlaces)
        {
            clickablebutton[3] = false;
        }
        if (corpus.WorkedHuntHouse == corpus.HuntHouseWorkPlaces)
        {
            clickablebutton[6] = false;
        }

        if (corpus.WorkedSawmill == 0)
        {
            clickablebutton[1] = false;
        }

        if (corpus.WorkedMine == 0)
        {
            clickablebutton[4] = false;
        }

        if (corpus.WorkedHuntHouse == 0)
        {
            clickablebutton[7] = false;
        }

        if (!(GameController.resources > Constants.Cost("Sawmill")))
        {
            clickablebutton[2] = false;
        }

        if (!(GameController.resources > Constants.Cost("Mine")))
        {
            clickablebutton[5] = false;
        }

        if (!(GameController.resources > Constants.Cost("HuntHouse")))
        {
            clickablebutton[8] = false;
        }

        if (!(GameController.resources > Constants.Cost("House")))
        {
            clickablebutton[9] = false;
        }


        GameObject.Find("Sawmill/AddWorker").GetComponent <Button>().interactable      = clickablebutton[0]; //0
        GameObject.Find("Sawmill/RemoveWorker").GetComponent <Button>().interactable   = clickablebutton[1]; //1
        GameObject.Find("Sawmill/AddBuilding").GetComponent <Button>().interactable    = clickablebutton[2]; //2
        GameObject.Find("Mine/AddWorker").GetComponent <Button>().interactable         = clickablebutton[3]; //3
        GameObject.Find("Mine/RemoveWorker").GetComponent <Button>().interactable      = clickablebutton[4]; //4
        GameObject.Find("Mine/AddBuilding").GetComponent <Button>().interactable       = clickablebutton[5]; //5
        GameObject.Find("HuntHouse/AddWorker").GetComponent <Button>().interactable    = clickablebutton[6]; //6
        GameObject.Find("HuntHouse/RemoveWorker").GetComponent <Button>().interactable = clickablebutton[7]; //7
        GameObject.Find("HuntHouse/AddBuilding").GetComponent <Button>().interactable  = clickablebutton[8]; //8
        GameObject.Find("House/AddBuilding").GetComponent <Button>().interactable      = clickablebutton[9]; //9

        SetShownInfo("House");
        SetShownInfo("Sawmill");
        SetShownInfo("Mine");
        SetShownInfo("HuntHouse");

        Travellers.Upd();
    }
예제 #32
0
 internal Models.Inherit.OrderManageEntities CreateInheritContext() => Constants.CreateInheritContext();
예제 #33
0
        public async Task <IHttpActionResult> Create()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin || request.AdminInfo == null)
                {
                    return(Unauthorized());
                }

#if !DEBUG
                var sessionId = request.GetPostString("sessionId");
                var cacheKey  = Constants.GetSessionIdCacheKey(request.AdminId);
                if (string.IsNullOrEmpty(sessionId) || CacheUtils.GetString(cacheKey) != sessionId)
                {
                    return(Unauthorized());
                }
#endif

                if (request.AdminInfo.LastActivityDate != null && ConfigManager.SystemConfigInfo.IsAdminEnforceLogout)
                {
                    var ts = new TimeSpan(DateTime.Now.Ticks - request.AdminInfo.LastActivityDate.Value.Ticks);
                    if (ts.TotalMinutes > ConfigManager.SystemConfigInfo.AdminEnforceLogoutMinutes)
                    {
                        return(Unauthorized());
                    }
                }

                var count = CreateTaskManager.PendingTaskCount;

                var pendingTask = CreateTaskManager.GetFirstPendingTask();
                if (pendingTask != null)
                {
                    try
                    {
                        var start = DateTime.Now;
                        await FileSystemObjectAsync.ExecuteAsync(pendingTask.SiteId, pendingTask.CreateType,
                                                                 pendingTask.ChannelId,
                                                                 pendingTask.ContentId, pendingTask.FileTemplateId, pendingTask.SpecialId);

                        var timeSpan = DateUtils.GetRelatedDateTimeString(start);
                        CreateTaskManager.AddSuccessLog(pendingTask, timeSpan);
                    }
                    catch (Exception ex)
                    {
                        CreateTaskManager.AddFailureLog(pendingTask, ex);
                    }
                    finally
                    {
                        CreateTaskManager.RemovePendingTask(pendingTask);
                    }
                }

                return(Ok(new
                {
                    Value = count
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
 public override string ToString()
 {
     return(string.Format("{0}: {1}", Kind, Constants.GetAACutinKind(Kind)));
 }
예제 #35
0
 public void clearPrefs()
 {
     Constants.clearPrefs();
 }
예제 #36
0
 public override bool checkIfCloseEnoughToInteractWith(Vector3 boatPos)
 {
     return(Constants.checkIfObjectIsCloseEnough(boatPos,
                                                 objectPrefab.transform.position,
                                                 Constants.footprintRadius_portTownPier));
 }
        /// <summary>
        /// Loads FieldingStats[] array from database.
        /// </summary>
        /// <returns>GameStats[]</returns>
        /// <param name="dataTable">DataTable</param>
        protected override GameStats[] LoadStatsFromDatabase(DataTable dataTable)
        {
            //Players can have multiple rows if they play several positions
            List <FieldingStats> fieldingStats = new List <FieldingStats>();

            try
            {
                foreach (DataRow row in this.dataTable.Rows)
                {
                    FieldingStats fStats       = null;
                    string        name         = String.Concat(row["nameFirst"].ToString(), " ", row["nameLast"].ToString());
                    int           putOuts      = Convert.ToInt32(row["PO"]);
                    int           assists      = Convert.ToInt32(row["A"]);
                    int           errors       = Convert.ToInt32(row["E"]);
                    int           totalChances = putOuts + assists + errors;

                    int fieldingRating  = 0;
                    int groundballError = 0;
                    int flyoutError     = 0;

                    if (totalChances >= 10)
                    {
                        putOuts         = Convert.ToInt32(row["PO"]);
                        assists         = Convert.ToInt32(row["A"]);
                        fieldingRating  = Constants.GetValueFromDouble(putOuts + assists, totalChances);
                        groundballError = Constants.GetValueFromDouble(errors, totalChances);
                        if (groundballError == 0)
                        {
                            groundballError = 1;
                        }
                        flyoutError = Constants.GetValueFromDouble(errors, totalChances);
                        if (flyoutError == 0)
                        {
                            flyoutError = 1;
                        }
                    }
                    else//Generate stats
                    {
                        fieldingRating  = Dice.Roll(90, 100);
                        groundballError = 100 - fieldingRating;
                        flyoutError     = 100 - fieldingRating;
                    }
                    fStats = new FieldingStats(fieldingRating, groundballError, flyoutError);
                    fStats.NaturalPosition = row["POS"].ToString();
                    fStats.Name            = name;
                    //Determine arm strength for Catchers
                    if (fStats.NaturalPosition == "C")
                    {
                        try
                        {
                            fStats.ArmStrength = (int)Constants.GetValueFromDouble(Convert.ToInt32(row["SB"]), (Convert.ToInt32(row["SB"]) + Convert.ToInt32(row["CS"])));
                            if (fStats.ArmStrength < 0)
                            {
                                fStats.ArmStrength = Convert.ToInt32(ConfigurationManager.GetConfigurationValue("DEFAULT_CATCHER_ARM_STRENGTH"));
                            }
                        }
                        catch (Exception ex)
                        {
                            ex.ToString();
                            fStats.ArmStrength = Convert.ToInt32(ConfigurationManager.GetConfigurationValue("DEFAULT_CATCHER_ARM_STRENGTH"));
                        }
                    }
                    else if (fStats.NaturalPosition == "P")
                    {
                        fStats.ArmStrength = Convert.ToInt32(ConfigurationManager.GetConfigurationValue("DEFAULT_PITCHER_ARM_STRENGTH"));;
                    }
                    else
                    {
                        fStats.ArmStrength = Convert.ToInt32(ConfigurationManager.GetConfigurationValue("DEFAULT_FIELDER_ARM_STRENGTH"));;
                    }
                    fieldingStats.Add(fStats);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
                fieldingStats.Add(new FieldingStats(98, 5, 5, 75));
            }
            return(fieldingStats.ToArray());
        }
예제 #38
0
        /// <summary>
        /// 戦闘終了時に各種データの収集を行います。
        /// </summary>
        private void BattleFinished()
        {
            //敵編成記録
            EnemyFleetRecord.EnemyFleetElement enemyFleetData = EnemyFleetRecord.EnemyFleetElement.CreateFromCurrentState();

            if (enemyFleetData != null)
            {
                RecordManager.Instance.EnemyFleet.Update(enemyFleetData);
            }


            // ロギング
            if (IsPractice)
            {
                Utility.Logger.Add(2,
                                   string.Format("演習 で「{0}」{1}の「{2}」と交戦しました。( ランク: {3}, 提督Exp+{4}, 艦娘Exp+{5} )",
                                                 EnemyAdmiralName, EnemyAdmiralRank, Result.EnemyFleetName, Result.Rank, Result.AdmiralExp, Result.BaseExp));
            }
            else if (IsBaseAirRaid)
            {
                var initialHPs = BattleDay.Initial.FriendInitialHPs.TakeWhile(hp => hp >= 0);
                var damage     = initialHPs.Zip(BattleDay.ResultHPs.Take(initialHPs.Count()), (initial, result) => initial - result).Sum();
                var airraid    = ((BattleBaseAirRaid)BattleDay).BaseAirRaid;

                Utility.Logger.Add(2,
                                   string.Format("{0}-{1}-{2} で基地に空襲を受けました。( {3}, 被ダメージ合計: {4}, {5} )",
                                                 Compass.MapAreaID, Compass.MapInfoID, Compass.Destination,
                                                 Constants.GetAirSuperiority(airraid.IsAvailable ? airraid.AirSuperiority : -1), damage, Constants.GetAirRaidDamage(Compass.AirRaidDamageKind)));
            }
            else
            {
                Utility.Logger.Add(2,
                                   string.Format("{0}-{1}-{2} で「{3}」と交戦しました。( ランク: {4}, 提督Exp+{5}, 艦娘Exp+{6} )",
                                                 Compass.MapAreaID, Compass.MapInfoID, Compass.Destination, Result.EnemyFleetName, Result.Rank, Result.AdmiralExp, Result.BaseExp));
            }


            // Level up
            if (!IsBaseAirRaid)
            {
                var exps = Result.ExpList;
                var lvup = Result.LevelUpList;
                for (int i = 0; i < lvup.Length; i++)
                {
                    if (lvup[i].Length >= 2 && i < exps.Length && lvup[i][0] + exps[i] >= lvup[i][1])
                    {
                        var ship      = FirstBattle.Initial.FriendFleet.MembersInstance[i];
                        int increment = Math.Max(lvup[i].Length - 2, 1);

                        Utility.Logger.Add(2, string.Format("{0} が Lv. {1} になりました。", ship.Name, ship.Level + increment));
                    }
                }

                if (IsCombinedBattle)
                {
                    exps = Result.ExpListCombined;
                    lvup = Result.LevelUpListCombined;
                    for (int i = 0; i < lvup.Length; i++)
                    {
                        if (lvup[i].Length >= 2 && i < exps.Length && lvup[i][0] + exps[i] >= lvup[i][1])
                        {
                            var ship      = FirstBattle.Initial.FriendFleetEscort.MembersInstance[i];
                            int increment = Math.Max(lvup[i].Length - 2, 1);

                            Utility.Logger.Add(2, string.Format("{0} が Lv. {1} になりました。", ship.Name, ship.Level + increment));
                        }
                    }
                }
            }



            //ドロップ艦記録
            if (!IsPractice && !IsBaseAirRaid)
            {
                //checkme: とてもアレな感じ

                int  shipID  = Result.DroppedShipID;
                int  itemID  = Result.DroppedItemID;
                int  eqID    = Result.DroppedEquipmentID;
                bool showLog = Utility.Configuration.Config.Log.ShowSpoiler;

                if (shipID != -1)
                {
                    ShipDataMaster ship = KCDatabase.Instance.MasterShips[shipID];
                    DroppedShipCount++;

                    var defaultSlot = ship.DefaultSlot;
                    if (defaultSlot != null)
                    {
                        DroppedEquipmentCount += defaultSlot.Count(id => id != -1);
                    }

                    if (showLog)
                    {
                        Utility.Logger.Add(2, string.Format("{0}「{1}」が戦列に加わりました。", ship.ShipTypeName, ship.NameWithClass));
                    }
                }

                if (itemID != -1)
                {
                    if (!DroppedItemCount.ContainsKey(itemID))
                    {
                        DroppedItemCount.Add(itemID, 0);
                    }
                    DroppedItemCount[itemID]++;

                    if (showLog)
                    {
                        var item       = KCDatabase.Instance.UseItems[itemID];
                        var itemmaster = KCDatabase.Instance.MasterUseItems[itemID];
                        Utility.Logger.Add(2, string.Format("アイテム「{0}」を入手しました。( 合計: {1}個 )", itemmaster?.Name ?? ("不明なアイテム - ID:" + itemID), (item?.Count ?? 0) + DroppedItemCount[itemID]));
                    }
                }

                if (eqID != -1)
                {
                    EquipmentDataMaster eq = KCDatabase.Instance.MasterEquipments[eqID];
                    DroppedEquipmentCount++;

                    if (showLog)
                    {
                        Utility.Logger.Add(2, string.Format("{0}「{1}」を入手しました。", eq.CategoryTypeInstance.Name, eq.Name));
                    }
                }


                // 満員判定
                if (shipID == -1 && (
                        KCDatabase.Instance.Admiral.MaxShipCount - (KCDatabase.Instance.Ships.Count + DroppedShipCount) <= 0 ||
                        KCDatabase.Instance.Admiral.MaxEquipmentCount - (KCDatabase.Instance.Equipments.Count + DroppedEquipmentCount) <= 0))
                {
                    shipID = -2;
                }

                RecordManager.Instance.ShipDrop.Add(shipID, itemID, eqID, Compass.MapAreaID, Compass.MapInfoID, Compass.Destination, Compass.MapInfo.EventDifficulty, Compass.EventID == 5, enemyFleetData.FleetID, Result.Rank, KCDatabase.Instance.Admiral.Level);
            }


            void IncrementSpecialAttack(BattleData bd)
            {
                if (bd == null)
                {
                    return;
                }

                foreach (var phase in bd.GetPhases())
                {
                    foreach (var detail in phase.BattleDetails)
                    {
                        int kind = detail.AttackType;

                        if (detail.AttackerIndex.IsFriend && TracedSpecialAttack.Contains(kind))
                        {
                            if (SpecialAttackCount.ContainsKey(kind))
                            {
                                SpecialAttackCount[kind]++;
                            }
                            else
                            {
                                SpecialAttackCount.Add(kind, 1);
                            }
                        }
                    }
                }
            }

            IncrementSpecialAttack(FirstBattle);
            IncrementSpecialAttack(SecondBattle);



            WriteBattleLog();



            /*//DEBUG
             * if (!IsBaseAirRaid && Utility.Configuration.Config.Log.LogLevel <= 1)
             * {
             *      var battle = SecondBattle ?? FirstBattle;
             *
             *      for (int i = 0; i < battle.Initial.EnemyMaxHPs.Length; i++)
             *      {
             *              if (battle.Initial.EnemyMaxHPs[i] > 0 && battle.ResultHPs[BattleIndex.Get(BattleSides.EnemyMain, i)] == 0)
             *                      Utility.Logger.Add(1, "justkill #" + (i + 1));
             *      }
             *
             * int rank = PredictWinRank(out var friend, out var enemy);
             *
             *      // SS -> S
             *      if (Constants.GetWinRank(rank).Substring(0, 1) != Result.Rank)
             *      {
             *              Utility.Logger.Add(1, $"勝利ランク予測が誤っています。予想 {Constants.GetWinRank(rank)} -> 実際 {Result.Rank}");
             *      }
             * }
             * //*/
        }
예제 #39
0
		protected override string GetAttackKind()
		{
			return Constants.GetNightAttackKind((NightAttackKind)AttackType);
		}
예제 #40
0
        public override void LoadFromResponse(string apiname, dynamic data)
        {
            //base.LoadFromResponse( apiname, data );	//不要

            switch (apiname)
            {
            case "api_req_map/start":
            case "api_req_map/next":
                BattleDay   = null;
                BattleNight = null;
                Result      = null;
                BattleMode  = BattleModes.Undefined;
                Compass     = new CompassData();
                Compass.LoadFromResponse(apiname, data);

                if (Compass.HasAirRaid)
                {
                    BattleMode = BattleModes.BaseAirRaid;
                    BattleDay  = new BattleBaseAirRaid();
                    BattleDay.LoadFromResponse(apiname, Compass.AirRaidData);
                    BattleFinished();
                }
                break;

            case "api_req_sortie/battle":
                BattleMode = BattleModes.Normal;
                BattleDay  = new BattleNormalDay();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_battle_midnight/battle":
                BattleNight = new BattleNormalNight();
                BattleNight.TakeOverParameters(BattleDay);
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_battle_midnight/sp_midnight":
                BattleMode  = BattleModes.NightOnly;
                BattleDay   = null;
                BattleNight = new BattleNightOnly();
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_sortie/airbattle":
                BattleMode = BattleModes.AirBattle;
                BattleDay  = new BattleAirBattle();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_sortie/ld_airbattle":
                BattleMode = BattleModes.AirRaid;
                BattleDay  = new BattleAirRaid();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_sortie/night_to_day":
                BattleMode  = BattleModes.NightDay;
                BattleNight = new BattleNormalDayFromNight();
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_sortie/ld_shooting":
                BattleMode = BattleModes.Radar;
                BattleDay  = new BattleNormalRadar();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/battle":
                BattleMode = BattleModes.Normal | BattleModes.CombinedTaskForce;
                BattleDay  = new BattleCombinedNormalDay();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/midnight_battle":
                BattleNight = new BattleCombinedNormalNight();
                //BattleNight.TakeOverParameters( BattleDay );		//checkme: 連合艦隊夜戦では昼戦での与ダメージがMVPに反映されない仕様?
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/sp_midnight":
                BattleMode  = BattleModes.NightOnly | BattleModes.CombinedMask;
                BattleDay   = null;
                BattleNight = new BattleCombinedNightOnly();
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/airbattle":
                BattleMode = BattleModes.AirBattle | BattleModes.CombinedTaskForce;
                BattleDay  = new BattleCombinedAirBattle();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/battle_water":
                BattleMode = BattleModes.Normal | BattleModes.CombinedSurface;
                BattleDay  = new BattleCombinedWater();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/ld_airbattle":
                BattleMode = BattleModes.AirRaid | BattleModes.CombinedTaskForce;
                BattleDay  = new BattleCombinedAirRaid();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/ec_battle":
                BattleMode = BattleModes.Normal | BattleModes.EnemyCombinedFleet;
                BattleDay  = new BattleEnemyCombinedDay();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/ec_midnight_battle":
                BattleNight = new BattleEnemyCombinedNight();
                BattleNight.TakeOverParameters(BattleDay);
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/ec_night_to_day":
                BattleMode  = BattleModes.NightDay | BattleModes.EnemyCombinedFleet;
                BattleNight = new BattleEnemyCombinedDayFromNight();
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/each_battle":
                BattleMode = BattleModes.Normal | BattleModes.CombinedTaskForce | BattleModes.EnemyCombinedFleet;
                BattleDay  = new BattleCombinedEachDay();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/each_battle_water":
                BattleMode = BattleModes.Normal | BattleModes.CombinedSurface | BattleModes.EnemyCombinedFleet;
                BattleDay  = new BattleCombinedEachWater();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_combined_battle/ld_shooting":
                BattleMode = BattleModes.Radar | BattleModes.CombinedTaskForce;
                BattleDay  = new BattleCombinedRadar();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_member/get_practice_enemyinfo":
                EnemyAdmiralName = data.api_nickname;
                EnemyAdmiralRank = Constants.GetAdmiralRank((int)data.api_rank);
                break;

            case "api_req_practice/battle":
                BattleMode = BattleModes.Practice;
                BattleDay  = new BattlePracticeDay();
                BattleDay.LoadFromResponse(apiname, data);
                break;

            case "api_req_practice/midnight_battle":
                BattleNight = new BattlePracticeNight();
                BattleNight.TakeOverParameters(BattleDay);
                BattleNight.LoadFromResponse(apiname, data);
                break;

            case "api_req_sortie/battleresult":
            case "api_req_combined_battle/battleresult":
            case "api_req_practice/battle_result":
                Result = new BattleResultData();
                Result.LoadFromResponse(apiname, data);
                BattleFinished();
                break;

            case "api_port/port":
                Compass          = null;
                BattleDay        = null;
                BattleNight      = null;
                Result           = null;
                BattleMode       = BattleModes.Undefined;
                DroppedShipCount = DroppedEquipmentCount = 0;
                DroppedItemCount.Clear();
                SpecialAttackCount.Clear();
                break;

            case "api_get_member/slot_item":
                DroppedEquipmentCount = 0;
                break;
            }
        }
예제 #41
0
 internal Models.Simple.OrderManageEntities CreateSimpleContext() => Constants.CreateSimpleContext();
        public static string GetBattleDetail(BattleData battle)
        {
            var sbmaster = new StringBuilder();

            foreach (var phase in battle.GetPhases())
            {
                var sb = new StringBuilder();

                if (phase is PhaseAirBattle)
                {
                    var p = phase as PhaseAirBattle;

                    GetBattleDetailPhaseAirBattle(sb, p);
                }
                else if (phase is PhaseBaseAirAttack)
                {
                    var p = phase as PhaseBaseAirAttack;

                    foreach (var a in p.AirAttackUnits)
                    {
                        sb.AppendFormat("〈第{0}波〉\r\n", a.AirAttackIndex + 1);
                        GetBattleDetailPhaseAirBattle(sb, a);
                        sb.Append(a.GetBattleDetail());
                    }
                }
                else if (phase is PhaseInitial)
                {
                    var p = phase as PhaseInitial;

                    if (p.FriendFleetEscort != null)
                    {
                        sb.AppendLine("〈味方主力艦隊〉");
                    }
                    else
                    {
                        sb.AppendLine("〈味方艦隊〉");
                    }

                    OutputFriendData(sb, p.FriendFleet, p.InitialHPs.Take(6).ToArray(), p.MaxHPs.Take(6).ToArray());

                    if (p.FriendFleetEscort != null)
                    {
                        sb.AppendLine();
                        sb.AppendLine("〈味方随伴艦隊〉");

                        OutputFriendData(sb, p.FriendFleetEscort, p.InitialHPs.Skip(12).Take(6).ToArray(), p.MaxHPs.Skip(12).Take(6).ToArray());
                    }

                    sb.AppendLine();

                    if (p.EnemyMembersEscort != null)
                    {
                        sb.Append("〈敵主力艦隊〉");
                    }
                    else
                    {
                        sb.Append("〈敵艦隊〉");
                    }

                    if (p.IsBossDamaged)
                    {
                        sb.Append(" : 装甲破壊");
                    }
                    sb.AppendLine();

                    OutputEnemyData(sb, p.EnemyMembersInstance, p.EnemyLevels, p.InitialHPs.Skip(6).Take(6).ToArray(), p.MaxHPs.Skip(6).Take(6).ToArray(), p.EnemySlotsInstance, p.EnemyParameters);


                    if (p.EnemyMembersEscort != null)
                    {
                        sb.AppendLine();
                        sb.AppendLine("〈敵随伴艦隊〉");

                        OutputEnemyData(sb, p.EnemyMembersEscortInstance, p.EnemyLevelsEscort, p.InitialHPs.Skip(18).Take(6).ToArray(), p.MaxHPs.Skip(18).Take(6).ToArray(), p.EnemySlotsEscortInstance, p.EnemyParametersEscort);
                    }

                    sb.AppendLine();
                }
                else if (phase is PhaseNightBattle)
                {
                    var p      = phase as PhaseNightBattle;
                    int length = sb.Length;

                    {
                        var eq = KCDatabase.Instance.MasterEquipments[p.TouchAircraftFriend];
                        if (eq != null)
                        {
                            sb.Append("自軍夜間触接: ").AppendLine(eq.Name);
                        }
                        eq = KCDatabase.Instance.MasterEquipments[p.TouchAircraftEnemy];
                        if (eq != null)
                        {
                            sb.Append("敵軍夜間触接: ").AppendLine(eq.Name);
                        }
                    }

                    {
                        int searchlightIndex = p.SearchlightIndexFriend;
                        if (searchlightIndex != -1)
                        {
                            sb.AppendFormat("自軍探照灯照射: {0} #{1}\r\n", p.FriendFleet.MembersInstance[searchlightIndex].Name, searchlightIndex + 1);
                        }
                        searchlightIndex = p.SearchlightIndexEnemy;
                        if (searchlightIndex != -1)
                        {
                            sb.AppendFormat("敵軍探照灯照射: {0} #{1}\r\n", p.EnemyMembersInstance[searchlightIndex].NameWithClass, searchlightIndex + 1);
                        }
                    }

                    if (p.FlareIndexFriend != -1)
                    {
                        sb.AppendFormat("自軍照明弾投射: {0} #{1}\r\n", p.FriendFleet.MembersInstance[p.FlareIndexFriend].Name, p.FlareIndexFriend + 1);
                    }
                    if (p.FlareIndexEnemy != -1)
                    {
                        sb.AppendFormat("敵軍照明弾投射: {0} #{1}\r\n", p.FlareEnemyInstance.NameWithClass, p.FlareIndexEnemy + 1);
                    }

                    if (sb.Length > length)                                     // 追加行があった場合
                    {
                        sb.AppendLine();
                    }
                }
                else if (phase is PhaseSearching)
                {
                    var p = phase as PhaseSearching;

                    sb.Append("自軍陣形: ").Append(Constants.GetFormation(p.FormationFriend));
                    sb.Append(" / 敵軍陣形: ").AppendLine(Constants.GetFormation(p.FormationEnemy));
                    sb.Append("交戦形態: ").AppendLine(Constants.GetEngagementForm(p.EngagementForm));
                    sb.Append("自軍索敵: ").Append(Constants.GetSearchingResult(p.SearchingFriend));
                    sb.Append(" / 敵軍索敵: ").AppendLine(Constants.GetSearchingResult(p.SearchingEnemy));

                    sb.AppendLine();
                }


                if (!(phase is PhaseBaseAirAttack))                             // 通常出力と重複するため
                {
                    sb.Append(phase.GetBattleDetail());
                }

                if (sb.Length > 0)
                {
                    sbmaster.AppendFormat("《{0}》\r\n", phase.Title).Append(sb);
                }
            }

            return(sbmaster.ToString());
        }
예제 #43
0
        public void init(JArray ArrNationalList)
        {
            COM_PASSPORT_NAT.Items.Clear();

            if (ArrNationalList != null && ArrNationalList.Count > 0)
            {
                Dictionary <string, string> item_list = new Dictionary <string, string>();
                for (int i = 0; i < ArrNationalList.Count; i++)
                {
                    JObject        tempObj = (JObject)ArrNationalList[i];
                    IList <string> keys    = tempObj.Properties().Select(p => p.Name).ToList();
                    for (int j = 0; j < keys.Count; j++)
                    {
                        if (!item_list.Keys.Contains(keys[j].ToString()))
                        {
                            item_list.Add(keys[j].ToString(), tempObj[keys[j].ToString()].ToString() + "(" + keys[j].ToString() + ")");
                        }
                    }
                }
                COM_PASSPORT_NAT.DataSource    = new BindingSource(item_list, null);
                COM_PASSPORT_NAT.DisplayMember = "Value";
                COM_PASSPORT_NAT.ValueMember   = "Key";
                COM_PASSPORT_NAT.SelectedIndex = 0;
            }

            COM_PASSPORT_RES.Items.Clear();
            //체재 사유
            for (int i = 1; i <= 29; i++)
            {
                COM_PASSPORT_RES.Items.Add(new Utils.ComboItem(i.ToString("D8"), Properties.Resources.ResourceManager.GetString(string.Format("StringResidence{0}", i.ToString("D2")))));
            }
            COM_PASSPORT_RES.SelectedIndex = 0;

            //여권 종류
            COM_PASSPORT_TYPE.Items.Clear();
            for (int i = 1; i <= 6; i++)
            {
                if (i != 2)
                {
                    COM_PASSPORT_TYPE.Items.Add(new Utils.ComboItem(i.ToString("D2"), Properties.Resources.ResourceManager.GetString(string.Format("StringPassportEtc{0}", i.ToString("D2") + "1"))));
                }
            }
            COM_PASSPORT_TYPE.SelectedIndex = 0;


            Dictionary <string, string> gender_list = new Dictionary <string, string>();

            gender_list.Add("M", Constants.getScreenText("COMBO_ITEM_MALE"));
            gender_list.Add("F", Constants.getScreenText("COMBO_ITEM_FEMALE"));
            COM_PASSPORT_SEX.Items.Clear();
            COM_PASSPORT_SEX.DataSource    = new BindingSource(gender_list, null);
            COM_PASSPORT_SEX.DisplayMember = "Value";
            COM_PASSPORT_SEX.ValueMember   = "Key";
            COM_PASSPORT_SEX.SelectedIndex = 0;

            //화면 디스크립트 변경
            ControlManager CtlSizeManager = new ControlManager(this);

            CtlSizeManager.ChageLabel(this);
            CtlSizeManager = null;
            //Clear();
        }
예제 #44
0
        protected void Page_PreInit(object sender, EventArgs e)
        {
            _displayError                = false;
            _parameterContainer.ID       = "parameterContainer";
            ReportViewer1.ReportError   += ReportViewer1_ReportError;
            ReportViewer1.ReportRefresh += ReportViewer1_ReportRefresh;
            ReportViewer1.LocalReport.EnableHyperlinks = true;
            PlaceHolderParameterData.Controls.Clear();

            if (Request != null)
            {
                if (Request.QueryString == null || Request.QueryString.Count == 0)
                {
                    throw new Exception(Constants.i18n("reportIdNotFound"));
                }
                var qsId = Request.QueryString["reportId"];
                _reportId = Guid.Empty;
                Guid.TryParse(qsId, out _reportId);
                if (_reportId == Guid.Empty)
                {
                    throw new Exception(Constants.i18n("reportIdNotFound"));
                }
                if (Request.QueryString.Count > 1)
                {
                    _getParameters = Request.QueryString["getParameters"] == "getParameters";
                }
                var token         = AstriaCookie.GetToken();
                var ip            = Request.UserHostAddress;
                var currentDomain = String.Format("{0}://{1}:{2}",
                                                  Request.IsSecureConnection ? "https" : "http",
                                                  Request.ServerVariables["SERVER_NAME"],
                                                  Request.ServerVariables["SERVER_PORT"]);
                var serverUrl = Functions.CombineUri(currentDomain, Functions.GetSetting(Constants.SERVER_VD, "/FusionServer"));
                _sb = new ServiceBuilder(serverUrl, token, ip, Constants.WEB_TIER_SOURCE);
            }
            var report    = GetReportPackage();
            var reportDef = GetReportDefinition();

            var paramInfo = ReportViewer1.LocalReport.GetParameters();

            try
            {
                if (!Page.IsPostBack && !_getParameters)
                {
                    if (paramInfo.Count > 1)
                    {
                        LoadReport(report, reportDef, null);
                    }
                    else
                    {
                        RefreshReport();
                    }
                }
                else
                {
                    // Empty controls so they aren't added more than once
                    PlaceHolderParameters.Controls.Clear();
                    RenderReportData(report);
                }
                _parameterPackages = GetReportParameterPackages(report, reportDef);
                var hiddenInput = new HiddenField();
                hiddenInput.ID = "reportParameterData";
                PlaceHolderParameterData.Controls.Add(hiddenInput);
            }
            catch (LocalProcessingException lex)
            {
                ErrorHandler(lex.InnerMost());
            }
            catch (Exception ex)
            {
                ErrorHandler(ex);
            }
        }
예제 #45
0
        internal float GetCarLevel()
        {
            float sumPHA = 0;

            for (int i = 0; i < 3; i++)
            {
                sumPHA += Constants.GetChassisPHA(ChassisLevel)[i] + Constants.GetEnginePHA(EngineLevel)[i] + Constants.GetFWingPHA(FWingLevel)[i] + Constants.GetRWingPHA(RWingLevel)[i];
                sumPHA += Constants.GetUnderbodyPHA(UnderbodyLevel)[i] + Constants.GetSidepodsPHA(SidepodsLevel)[i] + Constants.GetCoolingPHA(CoolingLevel)[i] + Constants.GetGearboxPHA(GearboxLevel)[i];
                sumPHA += Constants.GetBrakesPHA(BrakesLevel)[i] + Constants.GetSuspensionPHA(SuspensionLevel)[i] + Constants.GetElectronicsPHA(ElectronicsLevel)[i];
            }

            float carLevel = (sumPHA + CCPoints) / 40;

            return(carLevel);
        }
예제 #46
0
        private void BTN_OK_Click(object sender, EventArgs e)
        {
            if (COM_PASSPORT_TYPE.SelectedIndex == 0)
            {
                if (COM_PASSPORT_RES.SelectedIndex == 27)
                {
                    MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT_TYPE"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    COM_PASSPORT_RES.Focus();
                    return;
                }
            }
            else
            {
                if (COM_PASSPORT_RES.SelectedIndex != 27)
                {
                    MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT_TYPE"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    COM_PASSPORT_RES.Focus();
                    return;
                }
            }
            if (COM_PASSPORT_TYPE.SelectedIndex == 0)
            {
                if (string.Empty.Equals(TXT_PASSPORT_NO.Text) || TXT_PASSPORT_NO.Text.Length > 11)
                {
                    //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("TXT_PASSPORT_NO"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    TXT_PASSPORT_NO.Focus();
                    return;
                }

                if (string.Empty.Equals(TXT_PASSPORT_EXP.Text))
                {
                    //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("TXT_PASSPORT_EXP"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    TXT_PASSPORT_EXP.Focus();
                    return;
                }
            }
            else
            {
                if (string.Empty.Equals(TXT_PERMIT_NO.Text) || TXT_PERMIT_NO.Text.Length > 15)
                {
                    MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PERMIT_NO"), "Permit_no", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    TXT_PERMIT_NO.Focus();
                    return;
                }
            }

            if (string.Empty.Equals(TXT_PASSPORT_NAME.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("TXT_PASSPORT_NAME"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                TXT_PASSPORT_NAME.Focus();
                return;
            }

            if (string.Empty.Equals(COM_PASSPORT_NAT.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("COM_PASSPORT_NAT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                COM_PASSPORT_NAT.Focus();
                return;
            }
            if (string.Empty.Equals(COM_PASSPORT_SEX.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("COM_PASSPORT_SEX"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                COM_PASSPORT_SEX.Focus();
                return;
            }

            if (string.Empty.Equals(TXT_PASSPORT_BIRTH.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("TXT_PASSPORT_BIRTH"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                TXT_PASSPORT_BIRTH.Focus();
                return;
            }

            if (string.Empty.Equals(COM_PASSPORT_TYPE.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("COM_PASSPORT_TYPE"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                COM_PASSPORT_TYPE.Focus();
                return;
            }
            if (string.Empty.Equals(COM_PASSPORT_RES.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("COM_PASSPORT_RES"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                COM_PASSPORT_RES.Focus();
                return;
            }

            if (string.Empty.Equals(TXT_DATE_LAND.Text))
            {
                //MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("TXT_DATE_LAND"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                MetroFramework.MetroMessageBox.Show(this, Constants.getMessage("ERROR_PASSPORT"), "Passport", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                TXT_DATE_LAND.Focus();
                return;
            }



            this.DialogResult = DialogResult.OK;

            this.Close();
        }
예제 #47
0
        async void DoLoginCommand()
        {
            StatusLabel = _waitingMessage;

            ////Populate

            //var users = Builder<MLearningDB.User>.CreateListOfSize(5000).All().With(x => x.id = 0 ).And(x=>x.created_at = DateTime.UtcNow).And(x=>x.updated_at = DateTime.UtcNow).And(x=>x.social_id=null).Build();

            //foreach (var user in users)
            //{
            //    await _mLearningService.CreateAccount<MLearningDB.User>(user, u => u.id, UserType.Consumer);

            //    _mLearningService.AddUserToCircle(user.id, 45);
            //}



            ////end populate



            try
            {
                User user = new User {
                    username = Username, password = EncryptionService.encrypt(Password)
                };
                //   User user = new User { username = Username, password = Password };
                LoginOperationResult <User> result = await _mLearningService.ValidateLogin <User>(user, u => u.password == user.password && u.username == user.username, u => u.id, u => u.type);

                // LoginOperationResult result = await _mLearningService.ValidateConsumerLogin(user.username,user.password);

                if (result.successful)
                {
                    LoginOK = true;
                    SessionService.LogIn(result.id, Username);

                    SharedPreferences prefs = Constants.GetSharedPreferences(Constants.PreferencesFileName);
                    prefs.PutString(Constants.UserFirstNameKey, result.account.name);
                    prefs.PutString(Constants.UserLastNameKey, result.account.lastname);
                    prefs.PutString(Constants.UserImageUrlKey, result.account.image_url);

                    prefs.Commit();


                    switch ((UserType)result.userType)
                    {
                    case UserType.Consumer:

                        //Select corresponding user screen

                        ShowViewModel <MainViewModel>();


                        break;

#if (ADMIN)
                    case UserType.Head:


                        ShowViewModel <HeadMainViewModel>(new { user_id = result.id });

                        break;

                    case UserType.Publisher:

                        ShowViewModel <PublisherMainViewModel>(new { user_id = result.id });
                        break;
#endif

                    default:
                        StatusLabel = _wrongCredentialsMessage;
                        LoginOK     = false;
                        break;
                    }
                }
                else
                {
                    StatusLabel = _wrongCredentialsMessage;
                    LoginOK     = false;
                }
            }
            catch (WebException e)
            {
                StatusLabel  = _noInternetMessage;
                ConnectionOK = false;
            }
            catch (HttpRequestException e)
            {
                StatusLabel  = _noInternetMessage;
                ConnectionOK = false;
            }
            catch (MobileServiceInvalidOperationException e)
            {
                Mvx.Trace("MobileServiceInvalidOperationException " + e.Message);
                OperationOK = false;
            }
        }
예제 #48
0
        public Task Upgrade(IVersionContext versionContext)
        {
            var serviceMonitorsList = new DynamicList
            {
                Id             = "5dc786a40f4b6b13e0a909f4",
                Name           = "servicesMonitorList",
                DisplayName    = "Services Monitor List",
                AppId          = Constants.CoreAppId,
                Options        = Constants.DynamicListOptions(),
                ListDatasource = new DynamicListDatasource
                {
                    DatabaseConnectionOptions = new DatabaseOptions
                    {
                        DatabaseConnectionId = Constants.ServiceManagementDatabaseId,
                        Query =
                            versionContext.ConnectionType == Core.Persistences.ConnectionType.MongoDB ?
                            "{ \"$query\": { \"services\": [{ \r\n \"$match\" : {\r\n  \"$or\": [\r\n    { \"serviceState\" : 1 },\r\n    { \"serviceState\" : 3 }\r\n  ]\r\n}}] }}" :
                            versionContext.ConnectionType == Core.Persistences.ConnectionType.MySQL
                        ? "SELECT * FROM services s join servicehardwareinfos i on s.id = i.`serviceId` where s.`serviceState` = 1 or s.`serviceState` = 3"
                        : "SELECT * FROM services s join servicehardwareinfos i on s.id = i.\"serviceId\" where s.\"serviceState\" = 1 or s.\"serviceState\" = 3"
                    },
                    SourceType = DynamicListSourceType.Database
                },
                ColumnsList = new ColumnsList
                {
                    ColumndDefs = new List <ColumndDef>
                    {
                        new ColumndDef
                        {
                            Name          = "id",
                            DisplayName   = "Id",
                            IsHidden      = true,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = false,
                                AllowTextSearch     = false
                            },
                            Order = 0
                        },
                        new ColumndDef
                        {
                            Name          = "name",
                            DisplayName   = "Name",
                            AllowSort     = true,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = true
                            },
                            Order = 1
                        },
                        new ColumndDef
                        {
                            Name          = "instanceNo",
                            DisplayName   = "Instance No.",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                FieldValueType      = FieldValueType.Number,
                                AllowTextSearch     = false
                            },
                            Order = 2
                        },
                        new ColumndDef
                        {
                            Name          = "runningVersion",
                            DisplayName   = "Version",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = false
                            },
                            Order = 3
                        },
                        new ColumndDef
                        {
                            Name          = "lastCheckedDate",
                            DisplayName   = "Last Checked Date",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                FieldValueType      = FieldValueType.DatePicker,
                                AllowTextSearch     = false
                            },
                            Order = 4
                        },
                        new ColumndDef
                        {
                            Name          = "totalRunningTime",
                            DisplayName   = "Total Running Time",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = false,
                                AllowTextSearch     = false
                            },
                            Order = 5
                        },
                        new ColumndDef
                        {
                            Name                = "serviceState",
                            DisplayName         = "State",
                            AllowSort           = false,
                            DisplayFormat       = "{0}",
                            DisplayFormatAsHtml = true,
                            SearchOptions       = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                FieldValueType      = FieldValueType.Select,
                                AllowTextSearch     = false
                            },
                            DatasourceOptions = new DynamicListDatasourceOptions
                            {
                                Type = DatasourceControlType.StaticResource,
                                DatasourceStaticOptions = new DatasourceStaticOptions
                                {
                                    JsonResource = "[\r\n  { \r\n    \"name\":\"Start\",\r\n    \"value\": 0\r\n  },\r\n  {\r\n    \"name\":\"Run\",\r\n    \"value\": 1\r\n  },\r\n  {\r\n    \"name\":\"Shutdown\",\r\n    \"value\": 2\r\n  },\r\n  {\r\n    \"name\":\"Lost\",\r\n    \"value\": 3\r\n  }\r\n]"
                                }
                            },
                            Order = 6
                        },
                        new ColumndDef
                        {
                            Name          = "ipAddress",
                            DisplayName   = "IP Address",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = false
                            },
                            Order = 7
                        },
                        new ColumndDef
                        {
                            Name          = versionContext.ConnectionType != Core.Persistences.ConnectionType.MongoDB ? "os" : "serviceHardwareInfo.os",
                            DisplayName   = "OS",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = false
                            },
                            Order = 8
                        }
                    }
                },
                CommandsList = new CommandsList
                {
                    CommandButtonsInList = new List <CommandButtonInList>
                    {
                        new CommandButtonInList
                        {
                            Name                 = "dashboard",
                            DisplayName          = "Dashboard",
                            Color                = "primary",
                            Icon                 = "developer_board",
                            CommandPositionType  = CommandPositionType.InList,
                            ActionCommandOptions = new ActionCommandOptions
                            {
                                RedirectOptions = new RedirectOptions
                                {
                                    RedirectUrl  = "portal/page/service-dashboard?serviceId={{data.id}}",
                                    IsSameDomain = true
                                },
                                ActionType = ActionType.Redirect
                            },
                            Order = 0
                        }
                    }
                }
            };

            var serviceLogsList = new DynamicList
            {
                Id             = "5dcac739be0b4e533408344f",
                Name           = "serviceLogsList",
                DisplayName    = "Service Logs List",
                AppId          = Constants.CoreAppId,
                Options        = Constants.DynamicListOptions(),
                ListDatasource = new DynamicListDatasource
                {
                    DatabaseConnectionOptions = new DatabaseOptions
                    {
                        DatabaseConnectionId = Constants.ServiceManagementDatabaseId,
                        Query = versionContext.ConnectionType == Core.Persistences.ConnectionType.MongoDB ? "{ \"$query\": { \"logevents\": [ ] } }" : "SELECT * FROM logevents"
                    },
                    SourceType = DynamicListSourceType.Database
                },
                ColumnsList = new ColumnsList
                {
                    ColumndDefs = new List <ColumndDef>
                    {
                        new ColumndDef
                        {
                            Name          = "id",
                            DisplayName   = "Id",
                            IsHidden      = true,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = false,
                                AllowTextSearch     = false
                            },
                            Order = 0
                        },
                        new ColumndDef
                        {
                            Name          = "traceId",
                            DisplayName   = "Trace Id",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = true
                            },
                            Order = 1
                        },
                        new ColumndDef
                        {
                            Name          = "source",
                            DisplayName   = "Service Name",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = true
                            },
                            Order = 2
                        },
                        new ColumndDef
                        {
                            Name          = "sourceId",
                            DisplayName   = "Service Id",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = true
                            },
                            Order = 3
                        },
                        new ColumndDef
                        {
                            Name          = "httpRequestUrl",
                            DisplayName   = "Request Url",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = true
                            },
                            Order = 4
                        },
                        new ColumndDef
                        {
                            Name          = "httpResponseStatusCode",
                            DisplayName   = "Response Code",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                AllowTextSearch     = true
                            },
                            Order = 5
                        },
                        new ColumndDef
                        {
                            Name          = "beginRequest",
                            DisplayName   = "Begin Request",
                            AllowSort     = true,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = true,
                                FieldValueType      = FieldValueType.DatePicker,
                                AllowTextSearch     = false
                            },
                            Order = 6
                        },
                        new ColumndDef
                        {
                            Name          = "stackTrace",
                            DisplayName   = "stackTrace",
                            AllowSort     = false,
                            DisplayFormat = "{0}",
                            SearchOptions = new SearchOptions
                            {
                                AllowInAdvancedMode = false,
                                AllowTextSearch     = false
                            },
                            Order = 7
                        }
                    }
                },
                CommandsList = new CommandsList
                {
                    CommandButtonsInList = new List <CommandButtonInList>
                    {
                        new CommandButtonInList
                        {
                            Name                 = "collect",
                            DisplayName          = "Collect Logs",
                            Icon                 = "sync",
                            Color                = "accent",
                            CommandPositionType  = CommandPositionType.InList,
                            AllowRefreshList     = true,
                            ActionCommandOptions = new ActionCommandOptions
                            {
                                ActionType         = ActionType.CallHttpService,
                                HttpServiceOptions = new HttpServiceOptions
                                {
                                    HttpMethod      = "GET",
                                    HttpServiceUrl  = "{{configs.portalBaseEndpoint}}/api/logs/gather/{{data.traceId}}",
                                    HttpSuccessCode = "200;204"
                                },
                                ConfirmationOptions = new ConfirmationOptions
                                {
                                    IsEnable         = true,
                                    ConfirmationText = "Are you sure to collect all logs for this service?"
                                },
                                NotificationOptions = new NotificationOptions
                                {
                                    CompleteMessage = "System has collected all logs that belongs to trace id.",
                                    FailedMessage   = "Oops! Something went wrong, please check again."
                                }
                            }
                        }
                    }
                }
            };

            versionContext.InsertData(serviceMonitorsList);
            versionContext.InsertData(serviceLogsList);

            return(Task.CompletedTask);
        }
 public override string ToString()
 {
     return(Constants.GetFormation(Formation));
 }
예제 #50
0
        public static string GetBattleDetail(BattleData battle)
        {
            var  sbmaster      = new StringBuilder();
            bool isBaseAirRaid = battle.IsBaseAirRaid;


            foreach (var phase in battle.GetPhases())
            {
                var sb = new StringBuilder();

                switch (phase)
                {
                case PhaseBaseAirRaid p:

                    sb.AppendLine("味方基地航空隊 参加中隊:");
                    sb.Append(" ").AppendLine(string.Join(", ", p.Squadrons.Where(sq => sq.EquipmentInstance != null).Select(sq => sq.ToString()).DefaultIfEmpty("(なし)")));

                    GetBattleDetailPhaseAirBattle(sb, p);

                    break;

                case PhaseAirBattle p:

                    GetBattleDetailPhaseAirBattle(sb, p);

                    break;

                case PhaseBaseAirAttack p:

                    foreach (var a in p.AirAttackUnits)
                    {
                        sb.AppendFormat("〈第{0}波〉\r\n", a.AirAttackIndex + 1);

                        sb.AppendLine("味方基地航空隊 参加中隊:");
                        sb.Append(" ").AppendLine(string.Join(", ", a.Squadrons.Where(sq => sq.EquipmentInstance != null).Select(sq => sq.ToString())));

                        GetBattleDetailPhaseAirBattle(sb, a);
                        sb.Append(a.GetBattleDetail());
                    }

                    break;

                case PhaseJetAirBattle p:
                    GetBattleDetailPhaseAirBattle(sb, p);

                    break;

                case PhaseJetBaseAirAttack p:

                    foreach (var a in p.AirAttackUnits)
                    {
                        sb.AppendFormat("〈第{0}波〉\r\n", a.AirAttackIndex + 1);

                        sb.AppendLine("味方基地航空隊 参加中隊:");
                        sb.Append(" ").AppendLine(string.Join(", ", a.Squadrons.Where(sq => sq.EquipmentInstance != null).Select(sq => sq.ToString())));

                        GetBattleDetailPhaseAirBattle(sb, a);
                        sb.Append(a.GetBattleDetail());
                    }

                    break;

                case PhaseInitial p:


                    if (p.FriendFleetEscort != null)
                    {
                        sb.Append("〈味方主力艦隊〉");
                    }
                    else
                    {
                        sb.Append("〈味方艦隊〉");
                    }


                    void appendFleetInfo(FleetData fleet)
                    {
                        sb.Append(" 制空戦力 ");
                        sb.Append(GetRangeString(Calculator.GetAirSuperiority(fleet, false), Calculator.GetAirSuperiority(fleet, true)));

                        double truncate2(double value) => Math.Floor(value * 100) / 100;

                        sb.AppendFormat(" / 索敵能力 [1] {0}, [2] {1}, [3] {2}, [4] {3}",
                                        truncate2(Calculator.GetSearchingAbility_New33(fleet, 1)),
                                        truncate2(Calculator.GetSearchingAbility_New33(fleet, 2)),
                                        truncate2(Calculator.GetSearchingAbility_New33(fleet, 3)),
                                        truncate2(Calculator.GetSearchingAbility_New33(fleet, 4)));
                    }

                    if (isBaseAirRaid)
                    {
                        sb.AppendLine();
                        OutputFriendBase(sb, p.FriendInitialHPs, p.FriendMaxHPs);
                    }
                    else
                    {
                        appendFleetInfo(p.FriendFleet);
                        sb.AppendLine();
                        OutputFriendData(sb, p.FriendFleet, p.FriendInitialHPs, p.FriendMaxHPs);
                    }

                    if (p.FriendFleetEscort != null)
                    {
                        sb.AppendLine();
                        sb.Append("〈味方随伴艦隊〉");
                        appendFleetInfo(p.FriendFleetEscort);
                        sb.AppendLine();

                        OutputFriendData(sb, p.FriendFleetEscort, p.FriendInitialHPsEscort, p.FriendMaxHPsEscort);
                    }


                    sb.AppendLine();


                    void appendEnemyFleetInfo(int[] members)
                    {
                        int  air           = 0;
                        int  airbase       = 0;
                        bool indeterminate = false;

                        for (int i = 0; i < members.Length; i++)
                        {
                            var param = RecordManager.Instance.ShipParameter[members[i]];
                            if (param == null)
                            {
                                continue;
                            }

                            if (param.DefaultSlot == null || param.Aircraft == null)
                            {
                                indeterminate = true;
                                continue;
                            }

                            for (int s = 0; s < Math.Min(param.DefaultSlot.Length, param.Aircraft.Length); s++)
                            {
                                air += Calculator.GetAirSuperiority(param.DefaultSlot[s], param.Aircraft[s]);
                                if (KCDatabase.Instance.MasterEquipments[param.DefaultSlot[s]]?.IsAircraft ?? false)
                                {
                                    airbase += Calculator.GetAirSuperiority(param.DefaultSlot[s], param.Aircraft[s], 0, 0, 1);
                                }
                            }
                        }
                        sb.AppendFormat(" 制空戦力 {0} (対基地 {1})", air, airbase);
                        if (indeterminate)
                        {
                            sb.Append(" (未確定)");
                        }
                    }

                    if (p.EnemyMembersEscort != null)
                    {
                        sb.Append("〈敵主力艦隊〉");
                    }
                    else
                    {
                        sb.Append("〈敵艦隊〉");
                    }

                    appendEnemyFleetInfo(p.EnemyMembers);

                    if (p.IsBossDamaged)
                    {
                        sb.Append(" : 装甲破壊");
                    }
                    sb.AppendLine();

                    OutputEnemyData(sb, p.EnemyMembersInstance, p.EnemyLevels, p.EnemyInitialHPs, p.EnemyMaxHPs, p.EnemySlotsInstance, p.EnemyParameters);


                    if (p.EnemyMembersEscort != null)
                    {
                        sb.AppendLine();
                        sb.AppendLine("〈敵随伴艦隊〉");

                        appendEnemyFleetInfo(p.EnemyMembersEscort);

                        OutputEnemyData(sb, p.EnemyMembersEscortInstance, p.EnemyLevelsEscort, p.EnemyInitialHPsEscort, p.EnemyMaxHPsEscort, p.EnemySlotsEscortInstance, p.EnemyParametersEscort);
                    }

                    sb.AppendLine();

                    if (battle.GetPhases().Where(ph => ph is PhaseBaseAirAttack || ph is PhaseBaseAirRaid).Any(ph => ph != null && ph.IsAvailable))
                    {
                        sb.AppendLine("〈基地航空隊〉");
                        GetBattleDetailBaseAirCorps(sb, KCDatabase.Instance.Battle.Compass.MapAreaID);                                      // :(
                        sb.AppendLine();
                    }

                    if (p.RationIndexes.Length > 0)
                    {
                        sb.AppendLine("〈戦闘糧食補給〉");
                        foreach (var index in p.RationIndexes)
                        {
                            var ship = p.GetFriendShip(index);

                            if (ship != null)
                            {
                                sb.AppendFormat(" {0} #{1}\r\n", ship.NameWithLevel, index + 1);
                            }
                        }
                        sb.AppendLine();
                    }

                    break;

                case PhaseNightInitial p:

                {
                    var eq = KCDatabase.Instance.MasterEquipments[p.TouchAircraftFriend];
                    if (eq != null)
                    {
                        sb.Append("自軍夜間触接: ").AppendLine(eq.Name);
                    }
                    eq = KCDatabase.Instance.MasterEquipments[p.TouchAircraftEnemy];
                    if (eq != null)
                    {
                        sb.Append("敵軍夜間触接: ").AppendLine(eq.Name);
                    }
                }

                    {
                        int searchlightIndex = p.SearchlightIndexFriend;
                        if (searchlightIndex != -1)
                        {
                            sb.AppendFormat("自軍探照灯照射: {0} #{1}\r\n", p.FriendFleet.MembersInstance[searchlightIndex].Name, searchlightIndex + 1);
                        }
                        searchlightIndex = p.SearchlightIndexEnemy;
                        if (searchlightIndex != -1)
                        {
                            sb.AppendFormat("敵軍探照灯照射: {0} #{1}\r\n", p.EnemyMembersInstance[searchlightIndex].NameWithClass, searchlightIndex + 1);
                        }
                    }

                    if (p.FlareIndexFriend != -1)
                    {
                        sb.AppendFormat("自軍照明弾投射: {0} #{1}\r\n", p.FlareFriendInstance.NameWithLevel, p.FlareIndexFriend + 1);
                    }
                    if (p.FlareIndexEnemy != -1)
                    {
                        sb.AppendFormat("敵軍照明弾投射: {0} #{1}\r\n", p.FlareEnemyInstance.NameWithClass, p.FlareIndexEnemy + 1);
                    }

                    sb.AppendLine();
                    break;


                case PhaseSearching p:
                    sb.Append("自軍陣形: ").Append(Constants.GetFormation(p.FormationFriend));
                    sb.Append(" / 敵軍陣形: ").AppendLine(Constants.GetFormation(p.FormationEnemy));
                    sb.Append("交戦形態: ").AppendLine(Constants.GetEngagementForm(p.EngagementForm));
                    sb.Append("自軍索敵: ").Append(Constants.GetSearchingResult(p.SearchingFriend));
                    sb.Append(" / 敵軍索敵: ").AppendLine(Constants.GetSearchingResult(p.SearchingEnemy));

                    sb.AppendLine();

                    break;

                case PhaseSupport p:
                    if (p.IsAvailable)
                    {
                        sb.AppendLine("〈支援艦隊〉");
                        OutputSupportData(sb, p.SupportFleet);
                        sb.AppendLine();
                    }
                    break;

                case PhaseFriendlySupport p:
                    if (p.IsAvailable)
                    {
                        sb.AppendLine("〈友軍艦隊〉");
                        OutputFriendlySupportData(sb, p);
                        sb.AppendLine();

                        {
                            int searchlightIndex = p.SearchlightIndexFriend;
                            if (searchlightIndex != -1)
                            {
                                sb.AppendFormat("自軍探照灯照射: {0} #{1}\r\n", p.SearchlightFriendInstance.NameWithClass, searchlightIndex + 1);
                            }
                            searchlightIndex = p.SearchlightIndexEnemy;
                            if (searchlightIndex != -1)
                            {
                                sb.AppendFormat("敵軍探照灯照射: {0} #{1}\r\n", p.SearchlightEnemyInstance.NameWithClass, searchlightIndex + 1);
                            }
                        }

                        {
                            int flareIndex = p.FlareIndexFriend;
                            if (flareIndex != -1)
                            {
                                sb.AppendFormat("自軍照明弾投射: {0} #{1}\r\n", p.FlareFriendInstance.NameWithClass, flareIndex + 1);
                            }
                            flareIndex = p.FlareIndexEnemy;
                            if (flareIndex != -1)
                            {
                                sb.AppendFormat("敵軍照明弾投射: {0} #{1}\r\n", p.FlareEnemyInstance.NameWithClass, flareIndex + 1);
                            }
                        }

                        sb.AppendLine();
                    }
                    break;
                }


                if (!(phase is PhaseBaseAirAttack || phase is PhaseJetBaseAirAttack))                       // 通常出力と重複するため
                {
                    sb.Append(phase.GetBattleDetail());
                }

                if (sb.Length > 0)
                {
                    sbmaster.AppendFormat("《{0}》\r\n", phase.Title).Append(sb);
                }
            }


            {
                sbmaster.AppendLine("《戦闘終了》");

                var friend       = battle.Initial.FriendFleet;
                var friendescort = battle.Initial.FriendFleetEscort;
                var enemy        = battle.Initial.EnemyMembersInstance;
                var enemyescort  = battle.Initial.EnemyMembersEscortInstance;

                if (friendescort != null)
                {
                    sbmaster.AppendLine("〈味方主力艦隊〉");
                }
                else
                {
                    sbmaster.AppendLine("〈味方艦隊〉");
                }

                if (isBaseAirRaid)
                {
                    for (int i = 0; i < 6; i++)
                    {
                        if (battle.Initial.FriendMaxHPs[i] <= 0)
                        {
                            continue;
                        }

                        OutputResultData(sbmaster, i, string.Format("第{0}基地", i + 1),
                                         battle.Initial.FriendInitialHPs[i], battle.ResultHPs[i], battle.Initial.FriendMaxHPs[i]);
                    }
                }
                else
                {
                    for (int i = 0; i < friend.Members.Count(); i++)
                    {
                        var ship = friend.MembersInstance[i];
                        if (ship == null)
                        {
                            continue;
                        }

                        OutputResultData(sbmaster, i, ship.Name,
                                         battle.Initial.FriendInitialHPs[i], battle.ResultHPs[i], battle.Initial.FriendMaxHPs[i]);
                    }
                }

                if (friendescort != null)
                {
                    sbmaster.AppendLine().AppendLine("〈味方随伴艦隊〉");

                    for (int i = 0; i < friendescort.Members.Count(); i++)
                    {
                        var ship = friendescort.MembersInstance[i];
                        if (ship == null)
                        {
                            continue;
                        }

                        OutputResultData(sbmaster, i + 6, ship.Name,
                                         battle.Initial.FriendInitialHPsEscort[i], battle.ResultHPs[i + 6], battle.Initial.FriendMaxHPsEscort[i]);
                    }
                }


                sbmaster.AppendLine();
                if (enemyescort != null)
                {
                    sbmaster.AppendLine("〈敵主力艦隊〉");
                }
                else
                {
                    sbmaster.AppendLine("〈敵艦隊〉");
                }

                for (int i = 0; i < enemy.Length; i++)
                {
                    var ship = enemy[i];
                    if (ship == null)
                    {
                        continue;
                    }

                    OutputResultData(sbmaster, i,
                                     ship.NameWithClass,
                                     battle.Initial.EnemyInitialHPs[i], battle.ResultHPs[i + 12], battle.Initial.EnemyMaxHPs[i]);
                }

                if (enemyescort != null)
                {
                    sbmaster.AppendLine().AppendLine("〈敵随伴艦隊〉");

                    for (int i = 0; i < enemyescort.Length; i++)
                    {
                        var ship = enemyescort[i];
                        if (ship == null)
                        {
                            continue;
                        }

                        OutputResultData(sbmaster, i + 6, ship.NameWithClass,
                                         battle.Initial.EnemyInitialHPsEscort[i], battle.ResultHPs[i + 18], battle.Initial.EnemyMaxHPsEscort[i]);
                    }
                }

                sbmaster.AppendLine();
            }

            return(sbmaster.ToString());
        }
예제 #51
0
        private void cmbBoxTipoCliente_MouseClick(object sender, MouseEventArgs e)
        {
            Constants c = new Constants();

            cmbBoxTipoCliente.DataSource = c.TipoCliente();
        }
예제 #52
0
 private PathFilter(string s)
 {
     pathStr = s;
     pathRaw = Constants.encode(pathStr);
 }
예제 #53
0
 private void NegativeDelegate()
 {
     _abjectAudioInputs.OnRecordingFrequencies = null;
     Constants.DecreaseInputLayer();
     Destroy(gameObject);
 }
예제 #54
0
        public static void HandleCashPacket(Character chr, Packet packet)
        {
            var header = packet.ReadByte();

            switch ((CashPacketOpcodes)header)
            {
            case CashPacketOpcodes.C_IncreaseSlots:
            {
                var maplepoints = packet.ReadBool();
                var inventory   = packet.ReadByte();

                if (!(inventory >= 1 && inventory <= 5))
                {
                    _log.Warn("Increase slots failed: Invalid inventory");
                    SendError(chr, CashPacketOpcodes.S_IncSlotCount_Failed, CashErrors.OutOfStock);
                    return;
                }

                var points = chr.GetCashStatus();
                var price  = 4000;

                if (price > (maplepoints ? points.maplepoints : points.nx))
                {
                    _log.Warn("Increase slots failed: Not enough NX or maplepoints");
                    SendError(chr, CashPacketOpcodes.S_IncSlotCount_Failed, CashErrors.NotEnoughCash);
                    return;
                }

                var slots = chr.Inventory.MaxSlots[inventory - 1];

                // Client sided limit
                if (slots > 80)
                {
                    _log.Warn($"Increase slots failed: already has {slots} slots on inventory {inventory}");
                    SendError(chr, CashPacketOpcodes.S_IncSlotCount_Failed, CashErrors.UnknownErrorDC_1);
                    return;
                }

                // no limiting atm
                slots += 4;
                chr.Inventory.SetInventorySlots(inventory, slots, false);

                chr.AddSale($"Bought inventory expansion for inventory type {inventory} character {chr.ID}", price, maplepoints ? Character.TransactionType.MaplePoints : Character.TransactionType.NX);

                Character.CashLog.Info(new BuySlotIncrease
                    {
                        cashAmount      = price,
                        inventory       = inventory,
                        newSlots        = slots,
                        withMaplePoints = maplepoints
                    });

                SendIncreasedSlots(chr, inventory, slots);
                SendCashAmounts(chr);
                break;
            }

            case CashPacketOpcodes.C_BuyItem:
            {
                var maplepoints = packet.ReadBool();

                var id = packet.ReadInt();
                if (!DataProvider.Commodity.TryGetValue(id, out var ci))
                {
                    _log.Warn($"Buying failed: commodity not found for SN {id}");
                    SendError(chr, CashPacketOpcodes.S_Buy_Failed, CashErrors.OutOfStock);
                    return;
                }

                if (ci.OnSale == false ||
                    ci.StockState == StockState.NotAvailable ||
                    ci.StockState == StockState.OutOfStock)
                {
                    _log.Warn($"Buying failed: commodity {id} not on sale {ci.OnSale} or out of stock {ci.StockState}");
                    SendError(chr, CashPacketOpcodes.S_Buy_Failed, CashErrors.OutOfStock);
                    return;
                }

                var points = chr.GetCashStatus();
                if (ci.Gender != CommodityGenders.Both && (byte)ci.Gender != chr.Gender)
                {
                    _log.Warn("Buying failed: invalid gender");
                    SendError(chr, CashPacketOpcodes.S_Buy_Failed, CashErrors.UnknownErrorDC_1);
                    return;
                }

                if (ci.Price > (maplepoints ? points.maplepoints : points.nx))
                {
                    _log.Warn("Buying failed: not enough NX or maplepoints");
                    SendError(chr, CashPacketOpcodes.S_Buy_Failed, CashErrors.NotEnoughCash);
                    return;
                }

                var lockerItem = CreateLockerItem(chr.UserID, ci, "");
                var baseItem   = CharacterCashLocker.CreateCashItem(lockerItem, ci);
                chr.Locker.AddItem(lockerItem, baseItem);

                chr.AddSale($"Bought cash item {lockerItem.ItemId} amount {lockerItem.Amount} (ref: {lockerItem.CashId:X16})", ci.Price, maplepoints ? Character.TransactionType.MaplePoints : Character.TransactionType.NX);

                Character.CashLog.Info(new BuyItem
                    {
                        cashAmount      = ci.Price,
                        lockerItem      = lockerItem,
                        withMaplePoints = maplepoints
                    });

                SendBoughtItem(chr, lockerItem);
                SendCashAmounts(chr);

                break;
            }

            case CashPacketOpcodes.C_GiftItem:
            {
                var dob       = packet.ReadUInt();
                var sn        = packet.ReadInt();
                var recipient = packet.ReadString();

                // check DoB
                if (chr.DoB != dob)
                {
                    _log.Warn($"Gifting failed: invalid DoB entered");
                    SendError(chr, CashPacketOpcodes.S_Gift_Failed, CashErrors.InvalidDoBEntered);
                    return;
                }

                // Check SN

                if (!DataProvider.Commodity.TryGetValue(sn, out var ci))
                {
                    _log.Warn($"Gifting failed: commodity not found for SN {sn}");
                    SendError(chr, CashPacketOpcodes.S_Gift_Failed, CashErrors.OutOfStock);
                    return;
                }

                if (ci.OnSale == false ||
                    ci.StockState == StockState.NotAvailable ||
                    ci.StockState == StockState.OutOfStock)
                {
                    _log.Warn($"Gifting failed: commodity {sn} not on sale {ci.OnSale} or out of stock {ci.StockState}");
                    SendError(chr, CashPacketOpcodes.S_Gift_Failed, CashErrors.OutOfStock);
                    return;
                }

                // Check price
                var points = chr.GetCashStatus();
                if (ci.Price > points.nx)
                {
                    _log.Warn("Gifting failed: not enough NX");
                    SendError(chr, CashPacketOpcodes.S_Gift_Failed, CashErrors.NotEnoughCash);
                    return;
                }

                // Check recipient
                int recipientId     = 0;
                int recipientUserId = 0;
                int recipientGender = 0;
                using (var mdr = (MySqlDataReader)Server.Instance.CharacterDatabase.RunQuery(
                           "SELECT ID, userid, gender FROM characters WHERE `name` = @name",
                           "@name", recipient
                           ))
                {
                    if (!mdr.Read())
                    {
                        // Not found
                        _log.Warn($"Gifting failed: character named {recipient} not found");
                        SendError(chr, CashPacketOpcodes.S_Gift_Failed, CashErrors.CheckCharacterNameOrItemRestrictions);
                        return;
                    }

                    recipientId     = mdr.GetInt32(0);
                    recipientUserId = mdr.GetInt32(1);
                    recipientGender = mdr.GetInt32(2);
                }

                if (ci.Gender != CommodityGenders.Both && recipientGender != (int)ci.Gender)
                {
                    _log.Warn($"Gifting failed: receipient not {ci.Gender}");;
                    SendError(chr, CashPacketOpcodes.S_Gift_Failed, CashErrors.CheckCharacterNameOrItemRestrictions);
                    return;
                }


                var lockerItem = CreateLockerItem(recipientUserId, ci, chr.Name);
                var baseItem   = CharacterCashLocker.CreateCashItem(lockerItem, ci);
                // !!! We are saving the item to the current user, so we can save it alltogether at once!!!!
                // !!! THIS MEANS THAT IF SOMEONE MANAGED TO CRASH THE CASHSHOP, NOTHING IS LOST !!!!
                chr.Locker.AddItem(lockerItem, baseItem);

                chr.AddSale($"Bought cash item {lockerItem.ItemId} amount {lockerItem.Amount} (ref: {lockerItem.CashId:X16}) as a gift for {recipient}", ci.Price, Character.TransactionType.NX);

                Character.CashLog.Info(new BuyItem
                    {
                        cashAmount      = ci.Price,
                        lockerItem      = lockerItem,
                        withMaplePoints = false
                    });

                SendGiftDone(chr, lockerItem, recipient);
                SendCashAmounts(chr);
                break;
            }

            case CashPacketOpcodes.C_UpdateWishlist:
            {
                for (byte i = 0; i < 10; i++)
                {
                    var val = packet.ReadInt();

                    if (val == 0 || DataProvider.Commodity.ContainsKey(val))
                    {
                        chr.Wishlist[i] = val;
                    }
                    else
                    {
                        chr.Wishlist[i] = 0;
                        _log.Warn($"While updating wishlist, commodity not found for SN {val}");
                    }
                }

                SendWishlist(chr, true);
                break;
            }

            case CashPacketOpcodes.C_MoveStoL:
            {
                var cashid = packet.ReadLong();
                var inv    = packet.ReadByte();

                var lockerItem = chr.Inventory.GetLockerItemByCashID(cashid);
                if (lockerItem == null)
                {
                    _log.Warn($"Moving Storage to Locker failed: locker item not found with cashid {cashid}");
                    SendError(chr, CashPacketOpcodes.S_MoveStoL_Failed, CashErrors.UnknownError);
                    return;
                }

                if (Constants.getInventory(lockerItem.ItemId) != inv)
                {
                    _log.Warn($"Moving Storage to Locker failed: inventory didn't match.");
                    SendError(chr, CashPacketOpcodes.S_MoveStoL_Failed, CashErrors.UnknownError);
                    return;
                }

                var item = chr.Inventory.GetItemByCashID(cashid, inv);

                lockerItem.CharacterId = 0;         // Reset

                chr.Inventory.RemoveLockerItem(lockerItem, item, false);
                chr.Locker.AddItem(lockerItem, item);

                SendPlacedItemInStorage(chr, lockerItem);

                break;
            }

            case CashPacketOpcodes.C_MoveLtoS:
            {
                var cashid = packet.ReadLong();
                var inv    = packet.ReadByte();
                var slot   = packet.ReadShort();

                var lockerItem = chr.Locker.GetLockerItemFromCashID(cashid);
                if (lockerItem == null)
                {
                    _log.Warn($"Moving Locker to Storage failed: locker item not found with cashid {cashid}");
                    SendError(chr, CashPacketOpcodes.S_MoveLtoS_Failed, CashErrors.UnknownError);
                    return;
                }

                if (Constants.getInventory(lockerItem.ItemId) != inv)
                {
                    _log.Warn($"Moving Locker to Storage failed: inventory didn't match.");
                    SendError(chr, CashPacketOpcodes.S_MoveLtoS_Failed, CashErrors.UnknownError);
                    return;
                }

                if (lockerItem.UserId != chr.UserID)
                {
                    _log.Warn($"Moving Locker to Storage failed: tried to move cash item that was not from himself (packethack?)");
                    SendError(chr, CashPacketOpcodes.S_MoveLtoS_Failed, CashErrors.UnknownError);
                    return;
                }

                var item = chr.Locker.GetItemFromCashID(cashid, lockerItem.ItemId);
                if (item == null)
                {
                    _log.Warn($"Moving Locker to Storage failed: item not found with cashid {cashid} itemid {lockerItem.ItemId}");
                    SendError(chr, CashPacketOpcodes.S_MoveLtoS_Failed, CashErrors.UnknownError);
                    return;
                }

                if (slot < 1 || slot > chr.Inventory.MaxSlots[inv - 1])
                {
                    _log.Warn($"Moving Locker to Storage failed: not enough slots left.");
                    SendError(chr, CashPacketOpcodes.S_MoveLtoS_Failed, CashErrors.CheckFullInventory);
                    return;
                }

                if (chr.Inventory.GetItem(inv, slot) != null)
                {
                    _log.Warn($"Moving Locker to Storage failed: slot is not empty");
                    SendError(chr, CashPacketOpcodes.S_MoveLtoS_Failed, CashErrors.UnknownError);
                    return;
                }

                lockerItem.CharacterId = chr.ID;

                chr.Inventory.AddLockerItem(lockerItem);
                chr.Inventory.AddItem(inv, slot, item, false);
                chr.Locker.RemoveItem(lockerItem, item);

                SendPlacedItemInInventory(chr, item);
                break;
            }

            default:
            {
                //string what = "[" + DateTime.Now.ToString() + ":" + DateTime.Now.Millisecond.ToString("D3") + "] Unknown packet found: " + packet.ToString();
                //FileWriter.WriteLine(@"connection_log\" + chr.mID.ToString() + ".txt", what, true);
                ////Console.WriteLine("Unknown packet received! " + packet.ToString());
                Program.MainForm.LogAppend("Unknown data: " + packet);
                break;
            }
            }
        }
        protected override void RunActualProcess()
        {
            Log(MessageType.Info, "Valdiating Complex Standorte");
            var dbRaw                = SqlConnection.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice).Database;
            var dbComplex            = SqlConnection.GetDatabaseConnection(Stage.Complexes, Constants.PresentSlice).Database;
            var localnet             = dbRaw.Fetch <Localnet>();
            var buildingComplexes    = dbComplex.Fetch <BuildingComplex>();
            var standorteByGebäudeID = new Dictionary <int, List <string> >();
            var gebäudeIDByStandort  = new Dictionary <string, List <int> >();

            dbComplex.BeginTransaction();
            foreach (var lo in localnet)
            {
                var id       = lo.ObjektIDGebäude ?? throw new Exception("Was null");
                var standort = lo.Objektstandort;
                if (string.IsNullOrWhiteSpace(standort))
                {
                    continue;
                }

                if (!standorteByGebäudeID.ContainsKey(id))
                {
                    standorteByGebäudeID.Add(id, new List <string>());
                }

                if (!standorteByGebäudeID[id].Contains(standort))
                {
                    standorteByGebäudeID[id].Add(standort);
                }

                if (!gebäudeIDByStandort.ContainsKey(standort))
                {
                    gebäudeIDByStandort.Add(standort, new List <int>());
                }

                if (!gebäudeIDByStandort[standort].Contains(id))
                {
                    gebäudeIDByStandort[standort].Add(id);
                }
            }

            var addedStandorte = 0;
            var addedIds       = 0;

            while (addedStandorte > 0 || addedIds > 0)
            {
                foreach (var complex in buildingComplexes)
                {
                    foreach (var cid in complex.GebäudeObjectIDs)
                    {
                        var cStandorte = complex.ObjektStandorte;
                        var lStandorte = standorteByGebäudeID[cid];
                        if (!Constants.ScrambledEquals(cStandorte, lStandorte))
                        {
                            foreach (var s in lStandorte)
                            {
                                if (!cStandorte.Contains(s))
                                {
                                    cStandorte.Add(s);
                                    addedStandorte++;
                                }
                            }
                        }
                    }

                    foreach (var cstandort in complex.ObjektStandorte)
                    {
                        var cids = complex.GebäudeObjectIDs;
                        var lIds = gebäudeIDByStandort[cstandort];
                        if (!Constants.ScrambledEquals(cids, lIds))
                        {
                            foreach (var id in lIds)
                            {
                                if (!cids.Contains(id))
                                {
                                    cids.Add(id);
                                    addedIds++;
                                }
                            }
                        }
                    }
                }
            }

            Log(MessageType.Info, "Merging as needed", "A_CreateComplexeService");
            var merger = new ComplexMerger(SqlConnection, Services.MyLogger);

            merger.MergeBuildingComplexesAsNeeded();
            Log(MessageType.Info, "Merged from " + merger.BeginCount + " to " + merger.EndCount, "A_CreateComplexeService");

            foreach (var complex in buildingComplexes)
            {
                dbComplex.Save(complex);
            }

            Log(MessageType.Info, "Added Ids: " + addedIds);
            Log(MessageType.Info, "Added Standorte: " + addedStandorte);
            dbComplex.CompleteTransaction();
        }
예제 #56
0
        public async Task <IActionResult> PostOutputAsync([FromQuery, Required] long roundId, [FromBody, Required] OutputRequest request)
        {
            if (roundId < 0 ||
                request.Level < 0 ||
                !ModelState.IsValid)
            {
                return(BadRequest());
            }

            CcjRound round = Coordinator.TryGetRound(roundId);

            if (round is null)
            {
                TryLogLateRequest(roundId, CcjRoundPhase.OutputRegistration);
                return(NotFound("Round not found."));
            }

            if (round.Status != CcjRoundStatus.Running)
            {
                TryLogLateRequest(roundId, CcjRoundPhase.OutputRegistration);
                return(Gone("Round is not running."));
            }

            CcjRoundPhase phase = round.Phase;

            if (phase != CcjRoundPhase.OutputRegistration)
            {
                TryLogLateRequest(roundId, CcjRoundPhase.OutputRegistration);
                return(Conflict($"Output registration can only be done from OutputRegistration phase. Current phase: {phase}."));
            }

            if (request.OutputAddress.Network != Network)
            {
                // RegTest and TestNet address formats are sometimes the same.
                if (Network == Network.Main)
                {
                    return(BadRequest($"Invalid OutputAddress Network."));
                }
            }

            if (request.OutputAddress == Constants.GetCoordinatorAddress(Network))
            {
                Logger.LogWarning <ChaumianCoinJoinController>($"Bob is registering the coordinator's address. Address: {request.OutputAddress}, Level: {request.Level}, Signature: {request.UnblindedSignature}.");
            }

            if (request.Level > round.MixingLevels.GetMaxLevel())
            {
                return(BadRequest($"Invalid mixing level is provided. Provided: {request.Level}. Maximum: {round.MixingLevels.GetMaxLevel()}."));
            }

            if (round.ContainsRegisteredUnblindedSignature(request.UnblindedSignature))
            {
                return(NoContent());
            }

            MixingLevel mixinglevel = round.MixingLevels.GetLevel(request.Level);
            Signer      signer      = mixinglevel.Signer;

            if (signer.VerifyUnblindedSignature(request.UnblindedSignature, request.OutputAddress.ScriptPubKey.ToBytes()))
            {
                using (await OutputLock.LockAsync())
                {
                    Bob bob = null;
                    try
                    {
                        bob = new Bob(request.OutputAddress, mixinglevel);
                        round.AddBob(bob);
                        round.AddRegisteredUnblindedSignature(request.UnblindedSignature);
                    }
                    catch (Exception ex)
                    {
                        return(BadRequest($"Invalid outputAddress is provided. Details: {ex.Message}"));
                    }

                    int bobCount      = round.CountBobs();
                    int blindSigCount = round.CountBlindSignatures();
                    if (bobCount == blindSigCount)                     // If there'll be more bobs, then round failed. Someone may broke the crypto.
                    {
                        await round.ExecuteNextPhaseAsync(CcjRoundPhase.Signing);
                    }
                }

                return(NoContent());
            }
            return(BadRequest("Invalid signature provided."));
        }
예제 #57
0
 internal OrderManageEntities CreateContext() => Constants.CreateInheritContext();
예제 #58
0
 private void PassportInfoForm_Load(object sender, EventArgs e)
 {
     this.Text = Constants.getScreenText("PASSPORTINFO_FORM");
 }
 private static void GetBattleDetailPhaseAirBattle(StringBuilder sb, PhaseAirBattle p)
 {
     if (p.IsStage1Available)
     {
         sb.Append("Stage1: ").AppendLine(Constants.GetAirSuperiority(p.AirSuperiority));
         sb.AppendFormat(" 自軍: -{0}/{1}\r\n 敵軍: -{2}/{3}\r\n",
                         p.AircraftLostStage1Friend, p.AircraftTotalStage1Friend,
                         p.AircraftLostStage1Enemy, p.AircraftTotalStage1Enemy);
     }
     if (p.IsStage2Available)
     {
         sb.Append("Stage2: ");
         if (p.IsAACutinAvailable)
         {
             sb.AppendFormat("対空カットイン( {0}, {1}({2}) )", p.AACutInShip.NameWithLevel, Constants.GetAACutinKind(p.AACutInKind), p.AACutInKind);
         }
         sb.AppendLine();
         sb.AppendFormat(" 自軍: -{0}/{1}\r\n 敵軍: -{2}/{3}\r\n",
                         p.AircraftLostStage2Friend, p.AircraftTotalStage2Friend,
                         p.AircraftLostStage2Enemy, p.AircraftTotalStage2Enemy);
     }
     sb.AppendLine();
 }
예제 #60
0
 [ImplicitConsts] public static Variable ucd_get_codepoint(Constants c, Variable ch)
 {
     return(c.setting.MakeStr(DataSet.GetCodepoint(
                                  ch.Fetch().mo.mro_raw_Str.Get(ch))));
 }