public void TestHoneyFeatgure() { // arrange var honeyItem = new HoneyItem(4, 1, new Prize(3, 0), new Prize(1, 0), 0); var user = new UserGameKey(-1, 103); var bet = new SpinBet(user, PlatformType.None) { Lines = 25, LineBet = 1.0m, Multiplier = 1 }; var action = new Domain.Action(1, user, bet, 1, PlatformType.None); // action var state = HoneyReducer.dispatch(action, honeyItem); var honeyState = state.BonusState as Honey; // Assert Assert.AreEqual(3, honeyState.Item.Count); Assert.AreEqual(1, honeyState.Item.CurrentStep); Assert.AreEqual(2, honeyState.Item.Pot.Count); Assert.AreEqual(1, honeyState.Item.Pot.CurrentStep); Assert.AreEqual(1, honeyState.Item.BeeHive.Count); Assert.AreEqual(0, honeyState.Item.BeeHive.CurrentStep); Assert.AreEqual(false, honeyState.Item.IsCompleted); Assert.IsTrue(state.Result.Win > 0); }
public async Task <Action> Add(Action action) { if (!_addActionValidator.IsValidForAdd(action)) { throw new Exception(); } var request = _requestBuilder.BuildAddActionRequest(action.ActivityId, action); var response = await _restClient.ExecuteTaskAsync <ApiAction>(request); _responseValidator.Validate(response); return(_actionConvertor.Convert(response.Data)); }
public void TestHoneyFreeSpinFeature() { // arrange var honeyItem = new HoneyItem(4, 3, new Prize(0, 0), new Prize(1, 0), 0); var freeSpinItem = new BonusItem(3, 3, new Prize(2, 0), 1); var honeyFreeSpinItem = new BearHoneyFreeSpin(honeyItem, freeSpinItem); var user = new UserGameKey(-1, 103); var bet = new SpinBet(user, PlatformType.None) { Lines = 25, LineBet = 1.0m, Multiplier = 1 }; var action = new Domain.Action(1, user, bet, 1, PlatformType.None); // action var state = HoneyFreeSpinReducer.dispatch(action, honeyFreeSpinItem); // Assert Assert.AreEqual(false, state.BonusState.IsHoney); if (state.BonusState.IsHoneyFreeSpin) { var honeyFreeSpinState = state.BonusState as HoneyFreeSpin; var honey = honeyFreeSpinState.Item.Honey; var freeSpin = honeyFreeSpinState.Item.FreeSpin; Assert.AreEqual(4, honey.Id); Assert.AreEqual(3, honey.Multiplier); Assert.AreEqual(0, honey.Pot.Count); Assert.AreEqual(1, honey.Pot.CurrentStep); Assert.AreEqual(1, honey.BeeHive.Count); Assert.AreEqual(0, honey.BeeHive.CurrentStep); Assert.AreEqual(false, honey.IsCompleted); Assert.AreEqual(3, freeSpin.Id); Assert.AreEqual(3, freeSpin.Multiplier); Assert.AreEqual(2, freeSpin.Prize.Count); Assert.AreEqual(0, freeSpin.Prize.CurrentStep); Assert.AreEqual(false, freeSpin.IsCompleted); } if (state.BonusState.IsFreeSpin) { var freeSpin = state.BonusState as FreeSpin; Assert.AreEqual(3, freeSpin.Item.Id); Assert.AreEqual(3, freeSpin.Item.Multiplier); Assert.AreEqual(2, freeSpin.Item.Prize.Count); Assert.AreEqual(0, freeSpin.Item.Prize.CurrentStep); Assert.AreEqual(false, freeSpin.Item.IsCompleted); Assert.AreEqual(state.Result.Win + freeSpinItem.CumulativeWin, freeSpin.Item.CumulativeWin); } }
public void TestFreeSpinFeature() { // arrange var freeSpinItem = new BonusItem(3, 3, new Prize(15, 0), 0); var user = new UserGameKey(-1, 103); var bet = new SpinBet(user, PlatformType.None) { Lines = 25, LineBet = 1.0m, Multiplier = 1 }; var action = new Domain.Action(1, user, bet, 1, PlatformType.None); // action var state = FreeSpinReducer.dispatch(action, freeSpinItem); // Assert Assert.AreEqual(false, state.BonusState.IsHoney); if (state.BonusState.IsFreeSpin) { var freeSpinState = state.BonusState as FreeSpin; Assert.AreEqual(3, freeSpinState.Item.Id); Assert.AreEqual(3, freeSpinState.Item.Multiplier); Assert.AreEqual(true, freeSpinState.Item.IsStarted); Assert.AreEqual(14, freeSpinState.Item.Prize.Count); Assert.AreEqual(1, freeSpinState.Item.Prize.CurrentStep); Assert.AreEqual(false, freeSpinState.Item.IsCompleted); } if (state.BonusState.IsHoneyFreeSpin) { var honeyFreeSpinState = state.BonusState as HoneyFreeSpin; Assert.AreEqual(4, honeyFreeSpinState.Item.Honey.Id); Assert.AreEqual(3, honeyFreeSpinState.Item.Honey.Multiplier); Assert.AreEqual(state.Result.Bonus.Count, honeyFreeSpinState.Item.Honey.Pot.Count); Assert.AreEqual(true, honeyFreeSpinState.Item.Honey.Pot.Count > 0 && honeyFreeSpinState.Item.Honey.Pot.Count < 6); Assert.AreEqual(0, honeyFreeSpinState.Item.Honey.Pot.CurrentStep); Assert.AreEqual(1, honeyFreeSpinState.Item.Honey.BeeHive.Count); Assert.AreEqual(0, honeyFreeSpinState.Item.Honey.BeeHive.CurrentStep); Assert.AreEqual(state.Result.Bonus.Count + 1, honeyFreeSpinState.Item.Honey.TotalSpin); Assert.AreEqual(14, honeyFreeSpinState.Item.FreeSpin.Prize.Count); Assert.AreEqual(1, honeyFreeSpinState.Item.FreeSpin.Prize.CurrentStep); Assert.AreEqual(3, honeyFreeSpinState.Item.FreeSpin.Multiplier); Assert.AreEqual(false, honeyFreeSpinState.Item.IsCompleted); } }
public async Task <Tuple <bool, string> > UpdateEquipmentSMU(long equipmentId, long currentReading, long userId, DateTime dateReadSMU) { var equipment = await this._context.EQUIPMENTs.FindAsync(equipmentId); if (equipment == null) { return(Tuple.Create(false, "Failed to find equipment. ")); } var userIntId = Convert.ToInt32(userId); var equipmentIntId = Convert.ToInt32(equipmentId); var currentReadingInt = Convert.ToInt32(currentReading); var operationResult = false; var message = ""; var ucUser = new Domain.TTDevUser(new SharedContext(), userIntId).getUCUser(); using (var action = new Domain.Action (new UndercarriageContext(), new Domain.EquipmentActionRecord { ActionDate = dateReadSMU, ActionUser = ucUser, EquipmentId = equipmentIntId, ReadSmuNumber = currentReadingInt, TypeOfAction = Domain.ActionType.SMUReadingAction, })) { if (action.Operation.Start() == Domain.ActionStatus.Started) { if (action.Operation.Validate() == Domain.ActionStatus.Valid) { if (action.Operation.Commit() == Domain.ActionStatus.Succeed) { operationResult = true; } } } message = action.Operation.Message; } return(Tuple.Create(operationResult, message)); }
public async Task <Tuple <bool, string> > ChangeMeterUnit(long equipmentId, long oldSmuReading, long smuOnNewMeter, long userId, DateTime dateReplaced) { var equipment = await this._context.EQUIPMENTs.FindAsync(equipmentId); if (equipment == null) { return(Tuple.Create(false, "Failed to find equipment. ")); } var operationResult = false; var message = ""; var ucUser = new Domain.TTDevUser(new SharedContext(), (int)userId).getUCUser(); using (var action = new Domain.Action (new UndercarriageContext(), new Domain.EquipmentActionRecord { ActionDate = dateReplaced, ActionUser = ucUser, EquipmentId = (int)equipmentId, ReadSmuNumber = (int)oldSmuReading, TypeOfAction = Domain.ActionType.ChangeMeterUnit, }, new Domain.ChangeMeterUnitParams { Id = (int)equipmentId, SMUnew = (int)smuOnNewMeter })) { if (action.Operation.Start() == Domain.ActionStatus.Started) { if (action.Operation.Validate() == Domain.ActionStatus.Valid) { if (action.Operation.Commit() == Domain.ActionStatus.Succeed) { operationResult = true; } } } message = action.Operation.Message; } return(Tuple.Create(operationResult, message)); }
public ActionDTO(Domain.Action action) { this.Id = action.Id; this.CommentId = action.CommentId; this.Text = action.Text; }
public ActionStatus Commit() { if (Status != ActionStatus.Valid) { ActionLog += "Operation Status is not valid" + Environment.NewLine; Status = ActionStatus.Failed; return(Status); } var Components = _context.GENERAL_EQ_UNIT.Where(m => m.module_ucsub_auto == Params.Id); var paramsId = Params.Components.Select(n => n.Id).ToList(); var removiongComponents = _context.GENERAL_EQ_UNIT.Where(m => m.module_ucsub_auto == Params.Id && !paramsId.Any(k => m.equnit_auto == k)); var childToBeRemoved = new List <GENERAL_EQ_UNIT>(); foreach (var parent in removiongComponents) { var childComparts = new Compart(_context, parent.compartid_auto).getChildComparts().Select(m => m.compartid_auto); childToBeRemoved.AddRange(Components.Where(m => childComparts.Any(k => k == m.compartid_auto)).ToList()); } removiongComponents.ToList().AddRange(childToBeRemoved); //All child components will be removed automatically if (removeComponents(removiongComponents.GroupBy(m => m.equnit_auto).Select(m => m.FirstOrDefault()).ToList())) { //Components which are not in the list of current components should be removed from installed components! //Just for monitoring purposes string message = ""; message += "Components removed successfully"; } //↓↓↓↓↓ Adding all child compartments List <ComponentSetup> ChildsList = new List <ComponentSetup>(); foreach (var cmpnt in Params.Components.OrderBy(m => m.InstallDate)) { var childCompartments = _context.COMPART_PARENT_RELATION.Where(m => m.ParentCompartId == cmpnt.Compart.Id).Select(m => m.ParentCompartment).ToList(); int childPos = cmpnt.Pos + 1; foreach (var childCompart in childCompartments) { ChildsList.Add(new ComponentSetup { Brand = cmpnt.Brand, BudgetLife = cmpnt.BudgetLife, Compart = new CompartV { Id = childCompart.compartid_auto, CompartStr = childCompart.compartid, CompartTitle = childCompart.compart, CompartType = new CompartTypeV { Id = childCompart.comparttype_auto, Title = childCompart.LU_COMPART_TYPE.comparttype, Order = childCompart.LU_COMPART_TYPE.sorder ?? 1 } }, EquipmentSMU = cmpnt.EquipmentSMU, Grouser = cmpnt.Grouser, HoursAtInstall = cmpnt.HoursAtInstall, Id = 0, InstallCost = 0, InstallDate = cmpnt.InstallDate.ToLocalTime().Date, Note = cmpnt.Note, Pos = childPos, Result = new ResultMessage(), ShoeSize = cmpnt.ShoeSize, SystemId = cmpnt.SystemId, Validity = cmpnt.Validity, listPosition = -1, Points = -1 }); childPos++; } } Params.Components.AddRange(ChildsList); //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ foreach (var comp in Params.Components.Where(m => m.Id == 0)) { var componentParam = new SetupComponentParams { BudgetLife = comp.BudgetLife, CMU = comp.HoursAtInstall, CompartId = comp.Compart.Id, Cost = comp.InstallCost, Id = comp.Id, Life = comp.HoursAtInstall, UserId = Params.UserId, UserName = _current.ActionUser.userName }; if (comp.Id == 0) //New Component Added { var LogicalComponent = new Component(new UndercarriageContext()); comp.Result = LogicalComponent.CreateNewComponent(comp, _current.ActionUser.Id, _current.ActionUser.userName).Result; if (comp.Result.OperationSucceed) { IEquipmentActionRecord EquipmentActionForComp = new BLL.Core.Domain.EquipmentActionRecord { EquipmentId = Params.EquipmentId, ReadSmuNumber = comp.EquipmentSMU, TypeOfAction = ActionType.InstallComponentOnSystemOnEquipment, ActionDate = comp.InstallDate.ToLocalTime().Date, ActionUser = _current.ActionUser, Cost = comp.InstallCost, Comment = "Component Setup in Update Undercarriage Setup", }; using (Domain.Action compAction = new Domain.Action(new UndercarriageContext(), EquipmentActionForComp, new BLL.Core.Domain.InstallComponentOnSystemParams { Id = LogicalComponent.Id, Position = (byte)comp.Pos, SystemId = Params.Id, side = Params.Side })) { if (compAction.Operation.Start() == ActionStatus.Started) { if (compAction.Operation.Validate() == ActionStatus.Valid) { if (compAction.Operation.Commit() == ActionStatus.Succeed) { comp.Result.Id = compAction.Operation.UniqueId; comp.Result.OperationSucceed = true; comp.SystemId = Params.Id; } } } comp.Result.LastMessage = compAction.Operation.Message; comp.Result.ActionLog = compAction.Operation.ActionLog; } } } } Available(); UpdateLtds(); AdjustLives(); MakeExistingActionsAvailable(); if (!MakeOtherSystemsOnline()) { Status = ActionStatus.Failed; } else { Status = ActionStatus.Succeed; } return(Status); }
public (bool Success, List <Domain.Action> actions) AddActions() { var ActionList = new List <Domain.Action> { new Domain.Action() { Name = "پروفایل", ControllerName = "User", ActionName = "ProfileInfo", Icon = "zmdi zmdi-account", OrderPriority = 1, ShowInMenu = true, } }; #region Acl Actions var parent = new Domain.Action() { Name = "سطوح دسترسی", Icon = "zmdi zmdi-assignment-account", OrderPriority = 50, ShowInMenu = true, }; _db.Set <Domain.Action>().Add(parent); if (_db.SaveChanges() == 0) { return(false, null); } #region Users Actions ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "مدیریت کاربران", ControllerName = "User", ActionName = "Manage", Icon = "zmdi zmdi-accounts", OrderPriority = 51, ShowInMenu = true, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "افزودن کاربر", ControllerName = "User", ActionName = "Add", Icon = "zmdi zmdi-account-add", OrderPriority = 52, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "ویرایش کاربر", ControllerName = "User", ActionName = "Update", Icon = "zmdi zmdi-edit", OrderPriority = 53, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "حذف کاربر", ControllerName = "User", ActionName = "Delete", OrderPriority = 54, Icon = "zmdi zmdi-delete", ShowInMenu = false, }); #endregion #region Actions ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "مدیریت اکشن ها", ControllerName = "Action", ActionName = "Manage", Icon = "zmdi zmdi-view-list", OrderPriority = 55, ShowInMenu = true, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "افزودن اکشن", ControllerName = "Action", ActionName = "Add", Icon = "zmdi zmdi-account-add", OrderPriority = 57, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "ویرایش اکشن", ControllerName = "Action", ActionName = "Update", Icon = "zmdi zmdi-edir", OrderPriority = 58, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "حذف اکشن", ControllerName = "Action", ActionName = "Delete", Icon = "zmdi zmdi-account-add", OrderPriority = 58, ShowInMenu = false, }); #endregion #region ActionInRole Actions ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "افزودن اکشن به نقش", ControllerName = "ActionInRole", ActionName = "Add", Icon = "zmdi zmdi-collection-plus", OrderPriority = 59, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "حذف اکشن از نقش", ControllerName = "ActionInRole", ActionName = "Delete", Icon = "zmdi zmdi-delete", OrderPriority = 60, ShowInMenu = false, }); #endregion #region Role Actions ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "مدیریت نقش ها", ControllerName = "Role", ActionName = "Manage", Icon = "zmdi zmdi-accounts-list", OrderPriority = 61, ShowInMenu = true, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "افزودن نقش", ControllerName = "Role", ActionName = "Add", OrderPriority = 62, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "ویرایش نقش", ControllerName = "Role", ActionName = "Update", OrderPriority = 63, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "حذف نقش", ControllerName = "Role", ActionName = "Delete", OrderPriority = 64, ShowInMenu = false, }); #endregion #region UserInRole Actions ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "افزودن نقش به کاربر", ControllerName = "UserInRole", ActionName = "Add", Icon = "zmdi zmdi-collection-plus", OrderPriority = 59, ShowInMenu = false, }); ActionList.Add(new Domain.Action() { ParentId = parent.ActionId, Name = "حذف نقش از کاربر", ControllerName = "UserInRole", ActionName = "Delete", Icon = "zmdi zmdi-delete", OrderPriority = 60, ShowInMenu = false, }); #endregion #endregion _db.Set <Domain.Action>().AddRange(ActionList); ActionList.Insert(0, parent); if (_db.SaveChanges() == 0) { return(false, null); } else { return(true, ActionList); } }