예제 #1
0
 public ShopStatusLog(Guid id, Guid userId, string firstName, string lastName, ShopStatus shopStatus)
 {
     Id         = id;
     UserId     = userId;
     FirstName  = firstName;
     LastName   = lastName;
     ShopStatus = shopStatus;
 }
        public void SaveShopStatus(ShopStatus status)
        {
            ShopStatus findOne = db.ShopStatus.Where(x => (x.ShopStatusId == status.ShopStatusId)).FirstOrDefault();

            if (findOne == null)
            {
                status.InDateTime = DateTime.Now;
                db.ShopStatus.Add(status);
            }
        }
        public DeviceItem(ShopStatus parent, DeviceDescription device)
        {
            InitializeComponent();
            root.DataContext = this;
            Parent = parent;
            Device = device;

            StatusBrush = Brush_Functions.GetSolidBrushFromResource(this, "Disabled");

            if (!string.IsNullOrEmpty(device.Description.ImageUrl)) LoadDeviceImage(device.Description.ImageUrl);
        }
예제 #4
0
        public async Task <int> AddShopStatus(AddShopStatusRequest request)
        {
            var shopStatus = new ShopStatus
            {
                statusName = request.statusName,
                createUser = "******", //TODO: Get UserName Login
                createDate = DateTime.Now,
                updateDate = DateTime.Now,
            };

            _context.ShopStatuses.Add(shopStatus);
            return(await _context.SaveChangesAsync());
        }
        public DeviceItem(ShopStatus parent, DeviceDescription device)
        {
            InitializeComponent();
            root.DataContext = this;
            Parent           = parent;
            Device           = device;

            StatusBrush = Brush_Functions.GetSolidBrushFromResource(this, "Disabled");

            if (!string.IsNullOrEmpty(device.Description.ImageUrl))
            {
                LoadDeviceImage(device.Description.ImageUrl);
            }
        }
예제 #6
0
파일: Game.cs 프로젝트: APerson241/Invaders
 public void UpgradeRequested()
 {
     if (CurrentShopStatus == ShopStatus.OPEN)
     {
         CurrentShopStatus = ShopStatus.CLOSING;
         return;
     }
     if (beans > 0 && !GameOver)
     {
         shopXOff = ClientRectangle.Right;
         CurrentShopStatus = ShopStatus.OPENING;
     }
 }
예제 #7
0
파일: Game.cs 프로젝트: APerson241/Invaders
 public void OnMouseClick(Point location)
 {
     if (CurrentShopStatus == ShopStatus.OPEN)
     {
         for (int i = 1; i < Configurables.NUMBER_OF_SHOP_ITEMS + 1; i++)
         {
             Rectangle buttonRectangle = new Rectangle(COLUMN_X_VALUES[4] - BUTTON_PADDING,
                 (140 + (i - 1) * 50) - BUTTON_PADDING, 50 + 2 * BUTTON_PADDING, 50 + 2 * BUTTON_PADDING);
             if (buttonRectangle.Contains(location))
             {
                 switch (i)
                 {
                     case 1:
                         if (beans >= Configurables.EXTRA_LIFE_PRICE)
                         {
                             livesLeft++;
                             beans -= Configurables.EXTRA_LIFE_PRICE;
                             explosions.SpawnExplosion(new Point(buttonRectangle.Right + BUTTON_PADDING,
                                 buttonRectangle.Top + BUTTON_PADDING), buttonRectangle.Size, "+1 Extra Life");
                         } break;
                     case 2:
                         if (beans >= Configurables.BULLET_LIMIT_PRICE && bulletLimitGained < Configurables.MAX_LIMIT_INCREASE)
                         {
                             bulletLimitGained++;
                             beans -= Configurables.BULLET_LIMIT_PRICE;
                             explosions.SpawnExplosion(new Point(buttonRectangle.Right + BUTTON_PADDING,
                                 buttonRectangle.Top + BUTTON_PADDING), buttonRectangle.Size, "Bullet Limit +1");
                         } break;
                     case 3:
                         if (beans >= Configurables.GUIDED_MISSLE_BASE_PRICE)
                         {
                             guidedMissleLevel++;
                             beans -= Configurables.GUIDED_MISSLE_BASE_PRICE;
                             explosions.SpawnExplosion(new Point(buttonRectangle.Right + BUTTON_PADDING,
                                 buttonRectangle.Top + BUTTON_PADDING), buttonRectangle.Size,
                                 "Guided Missles are now at level " + guidedMissleLevel + "!");
                         } break;
                 }
                 if (beans == 0) CurrentShopStatus = ShopStatus.OPEN;
             }
         }
     }
 }
예제 #8
0
파일: Game.cs 프로젝트: APerson241/Invaders
 public void Go(Random random)
 {
     if (CurrentShopStatus == ShopStatus.OPEN) return;
     if (CurrentShopStatus == ShopStatus.OPENING) {
         shopXOff -= Configurables.SHOP_ANIMATION_SPEED + (int)((ClientRectangle.Right - shopXOff) / 10);
         if (shopXOff <= 0)
         {
             CurrentShopStatus = ShopStatus.OPEN;
             shopXOff = 0;
         }
         return;
     }
     if (CurrentShopStatus == ShopStatus.CLOSING) {
         shopXOff += Configurables.SHOP_ANIMATION_SPEED + (int)(shopXOff / 10);
         if (shopXOff >= ClientRectangle.Right) CurrentShopStatus = ShopStatus.CLOSED;
         return;
     }
     MoveInvaders();
     UpdateShots();
     CheckForInvaderCollisions();
     CheckForPlayerCollisions();
     if (!GameOver)
     {
         if (invaders.Count == 0)
             NextWave();
         ReturnFire();
     }
 }
 public void SetStatus(ShopStatus status)
 {
     Status = status;
 }
 private void Awake()
 {
     Status = ShopStatus.None;
 }
예제 #11
0
        public async Task <Result> CreateUser(RegisterViewModel UserViewModel)
        {
            // validation
            if (string.IsNullOrWhiteSpace(UserViewModel.Password) || string.IsNullOrWhiteSpace(UserViewModel.Id))
            {
                return new Result()
                       {
                           IsSuccess = false,
                           Errors    = new List <string> {
                               Resources.IdAndPasswordRequired
                           }
                       }
            }
            ;



            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(UserViewModel.Password, out passwordHash, out passwordSalt);

            if (UserViewModel.UserType == UserTypeEnum.Citizen)
            {
                User user = new User();

                user.IDNumber           = UserViewModel.Id;
                user.NormalizedUserName = UserViewModel.FullName;
                user.FullName           = UserViewModel.FullName;
                user.GWTPasswordHash    = passwordHash;
                user.GWTPasswordSalt    = passwordSalt;
                user.IsActive           = true;
                user.CreatedBy          = "test";
                user.CreationDate       = DateTime.Now;
                _context.Users.Add(user);
                _context.SaveChanges();

                var        UserId     = _context.Users.OrderByDescending(u => u.Id).Select(u => u.Id).FirstOrDefault();
                UserStatus userStatus = new UserStatus();
                userStatus.UserId         = UserId;
                userStatus.UserStatusEnum = UserStatusEnum.Normal;
                userStatus.CreationDate   = DateTime.Now;
                userStatus.IsActive       = true;
                userStatus.CreatedBy      = "test";
                _context.UserStatus.Add(userStatus);
                _context.SaveChanges();
            }
            else if (UserViewModel.UserType == UserTypeEnum.Shop)
            {
                Shop shop = new Shop();
                shop.LicenseNumber   = UserViewModel.Id;
                shop.Name            = UserViewModel.FullName;
                shop.GWTPasswordHash = passwordHash;
                shop.GWTPasswordSalt = passwordSalt;
                shop.IsActive        = true;
                shop.CreatedBy       = "test";
                shop.CreationDate    = DateTime.Now;
                shop.CategoryId      = UserViewModel.CategoryId;
                _context.Shop.Add(shop);
                _context.SaveChanges();
                var        ShopId     = _context.Shop.OrderByDescending(u => u.Id).Select(u => u.Id).FirstOrDefault();
                ShopStatus shopStatus = new ShopStatus();
                shopStatus.ShopId         = ShopId;
                shopStatus.UserStatusEnum = UserStatusEnum.Normal;
                shopStatus.CreationDate   = DateTime.Now;
                shopStatus.IsActive       = true;
                shopStatus.CreatedBy      = "test";
                _context.ShopStatus.Add(shopStatus);
                _context.SaveChanges();
            }
            else
            {
                User user = new User();
                user.Email = UserViewModel.Id;
                user.NormalizedUserName = UserViewModel.FullName;
                user.FullName           = UserViewModel.FullName;
                user.GWTPasswordHash    = passwordHash;
                user.GWTPasswordSalt    = passwordSalt;
                user.IsActive           = true;
                user.CreatedBy          = "test";
                user.CreationDate       = DateTime.Now;
                _context.Users.Add(user);
                _context.SaveChanges();
            }


            return(new Result()
            {
                Data = true,
                IsSuccess = true,
                Errors = new List <string> {
                }
            });
        }
예제 #12
0
        public async Task <IActionResult> ControlPanelAjax(string category = "все", string subcategory = "все", ShopStatus status = ShopStatus.None)
        {
            List <Product> products;

            if (status == ShopStatus.None)
            {
                if (category.Contains("все") && subcategory.Contains("все"))
                {
                    products = await _db.Products.ToListAsync();
                }
                else
                {
                    if (subcategory.Contains("все"))
                    {
                        products = await _db.Products.Where(p => p.Category.Name.ToLower().Contains(category.ToLower()))
                                   .ToListAsync();
                    }
                    else
                    {
                        products = await _db.Products
                                   .Where(p => p.Subcategory.Name.ToLower().Contains(subcategory.ToLower())).ToListAsync();
                    }
                }
            }
            else
            {
                if (category.Contains("все") && subcategory.Contains("все"))
                {
                    products = await _db.Shops.Where(p => p.Status == status).Select(p => p.Product).ToListAsync();
                }
                else
                {
                    if (subcategory.Contains("все"))
                    {
                        products = await _db.Shops.Where(p => p.Status == status).Select(p => p.Product).Where(p => p.Category.Name.ToLower().Contains(category.ToLower()))
                                   .ToListAsync();
                    }
                    else
                    {
                        products = await _db.Shops.Where(p => p.Status == status).Select(p => p.Product)
                                   .Where(p => p.Subcategory.Name.ToLower().Contains(subcategory.ToLower())).ToListAsync();
                    }
                }
            }

            return(PartialView("Partial/PartialControlPanel", products));
        }
예제 #13
0
        public async Task <Result> EditShopStatus(EditStatusViewModel EditStatusVM)
        {
            var shopId    = _context.Shop.Where(u => u.Id.ToString() == EditStatusVM.UserId).Select(u => u.Id).FirstOrDefault();
            var oldStatus = _context.ShopStatus.Where(u => u.ShopId.ToString() == EditStatusVM.UserId).OrderByDescending(u => u.Id).Select(u => u.UserStatusEnum).FirstOrDefault();

            if (shopId != 0 || shopId != null)
            {
                if (oldStatus != EditStatusVM.UserStatusEnum)
                {
                    ShopStatus shopStatus = new ShopStatus();
                    shopStatus.ShopId         = shopId;
                    shopStatus.UserStatusEnum = EditStatusVM.UserStatusEnum;
                    shopStatus.Date           = DateTime.Now;
                    shopStatus.CreationDate   = DateTime.Now;
                    shopStatus.IsActive       = true;
                    shopStatus.CreatedBy      = "test";

                    _context.ShopStatus.Add(shopStatus);
                    _context.SaveChanges();

                    #region SendNotification For Shops

                    var titleForShop = Resources.MedicalStatusAlertTitle;
                    var bodyForShop  = Resources.ShopStatusIsChanged + " " + EditStatusVM.UserStatusEnum;

                    PayLoadViewModel payLoadDataForShop = new PayLoadViewModel
                    {
                        InfectedUserName = "******",
                        Title            = titleForShop,
                        Body             = bodyForShop
                    };

                    var TokensListForShop = GetShopToken(shopId);

                    FirebaseHelper.SendNotification(TokensListForShop, titleForShop, bodyForShop, payLoadDataForShop);


                    #endregion



                    #region SendNotification For CheckedIn Users In shop

                    if (EditStatusVM.UserStatusEnum == UserStatusEnum.Normal)
                    {
                        var userIds  = _context.CheckInOut.Where(c => c.ShopId == shopId).Select(c => c.UserId).Distinct().ToList();
                        var shopName = _context.Shop.Where(c => c.Id == shopId).Select(c => c.Name).FirstOrDefault();

                        var titleForCheckedInUser = Resources.MedicalStatusAlertTitle;
                        var bodyForCheckedInUser  = shopName + " " + Resources.ShopStatusIsChangedToNormal;

                        PayLoadViewModel payLoadDataForCheckedInUser = new PayLoadViewModel
                        {
                            InfectedUserName = "******",
                            Title            = titleForCheckedInUser,
                            Body             = bodyForCheckedInUser
                        };

                        var TokensListForCheckedInUser = GetUsersTokens(userIds);

                        FirebaseHelper.SendNotification(TokensListForCheckedInUser, titleForCheckedInUser, bodyForCheckedInUser, payLoadDataForCheckedInUser);
                    }

                    #endregion


                    return(new Result()
                    {
                        IsSuccess = true,
                        Errors = new List <string>()
                    });
                }
                else
                {
                    return(new Result()
                    {
                        IsSuccess = false,
                        Errors = new List <string> {
                            Resources.ShopIsAlreadyOnThisStatus
                        }
                    });
                }
            }
            else
            {
                return(new Result()
                {
                    IsSuccess = false,
                    Errors = new List <string> {
                        Resources.ShopIsNotExist
                    }
                });
            }
        }
예제 #14
0
        public async Task <Result> EditCitizenStatus(EditStatusViewModel EditStatusVM)
        {
            if (EditStatusVM.UserStatusEnum != UserStatusEnum.Normal)
            {
                // change user status
                var UserId    = _context.Users.Where(u => u.Id == EditStatusVM.UserId).Select(u => u.Id).FirstOrDefault();
                var oldStatus = _context.UserStatus.Where(u => u.UserId == EditStatusVM.UserId).OrderByDescending(u => u.Id).Select(u => u.UserStatusEnum).FirstOrDefault();

                if (UserId != null)
                {
                    if (oldStatus != EditStatusVM.UserStatusEnum)
                    {
                        UserStatus userStatus = new UserStatus();
                        userStatus.UserId         = UserId;
                        userStatus.UserStatusEnum = EditStatusVM.UserStatusEnum;
                        userStatus.Date           = DateTime.Now;
                        userStatus.CreationDate   = DateTime.Now;
                        userStatus.IsActive       = true;
                        userStatus.CreatedBy      = "test";
                        _context.UserStatus.Add(userStatus);
                        _context.SaveChanges();

                        //change all checkedin shops in last 14 day satus to be suspected
                        var checkedInPlacesLastTwoWeeks = _context.CheckInOut.Where(c => c.UserId == EditStatusVM.UserId && c.CheckInDate.Value.AddDays(14) > DateTime.Now).Select(c => c.ShopId).ToList();

                        var CheckInOutList = _context.CheckInOut.Where(c => c.UserId == EditStatusVM.UserId && c.CheckInDate.Value.AddDays(14) > DateTime.Now).ToList();

                        List <CheckInOutPeriod> CheckInOutPeriodList = new List <CheckInOutPeriod>();
                        foreach (var CheckInOut in CheckInOutList)
                        {
                            CheckInOutPeriod CheckInOutPeriod = new CheckInOutPeriod();
                            CheckInOutPeriod.CheckIn  = CheckInOut.CheckInDate;
                            CheckInOutPeriod.CheckOut = CheckInOut.CheckOutDate;
                            CheckInOutPeriodList.Add(CheckInOutPeriod);
                        }

                        var CheckedInAtThisShops = _context.CheckInOut.Where(c => checkedInPlacesLastTwoWeeks.Contains(c.ShopId) && c.UserId != EditStatusVM.UserId).ToList();

                        List <string> userUdsForNotifications = new List <string>();

                        foreach (var CheckPeriod in CheckInOutPeriodList)
                        {
                            foreach (var usersCheckedIn in CheckedInAtThisShops)
                            {
                                if ((usersCheckedIn.CheckInDate < CheckPeriod.CheckOut && usersCheckedIn.CheckOutDate > CheckPeriod.CheckIn) || (usersCheckedIn.CheckInDate > CheckPeriod.CheckIn && CheckPeriod.CheckOut == null))
                                {
                                    UserStatus newUserStatus = new UserStatus();
                                    newUserStatus.UserId         = usersCheckedIn.UserId;
                                    newUserStatus.UserStatusEnum = UserStatusEnum.Suspected;
                                    newUserStatus.Date           = DateTime.Now;
                                    newUserStatus.CreationDate   = DateTime.Now;
                                    newUserStatus.IsActive       = true;
                                    newUserStatus.CreatedBy      = "test";
                                    _context.UserStatus.Add(newUserStatus);
                                    _context.SaveChanges();
                                    userUdsForNotifications.Add(usersCheckedIn.UserId);
                                }
                            }
                        }

                        List <long> NormalShopIds    = new List <long>();
                        List <long> SuspectedShopIds = new List <long>();
                        List <long> InfectedShopIds  = new List <long>();


                        // change shop status

                        foreach (var checkedInShop in checkedInPlacesLastTwoWeeks)
                        {
                            var suspectedusersIds = _context.CheckInOut.Where(c => c.ShopId == checkedInShop).Select(c => c.UserId).Distinct().ToList();

                            List <UserStatusEnum> NoramlUsersStatesList    = new List <UserStatusEnum>();
                            List <UserStatusEnum> SuspectedUsersStatesList = new List <UserStatusEnum>();
                            List <UserStatusEnum> InfectedUsersStatesList  = new List <UserStatusEnum>();

                            foreach (var suspecteduserId in suspectedusersIds)
                            {
                                UserStatusEnum userLastStatus = _context.UserStatus.Where(u => u.UserId == suspecteduserId).OrderByDescending(u => u.Id).Select(u => u.UserStatusEnum).FirstOrDefault();

                                if (userLastStatus == UserStatusEnum.Normal)
                                {
                                    NoramlUsersStatesList.Add(userLastStatus);
                                }
                                else if (userLastStatus == UserStatusEnum.Suspected)
                                {
                                    SuspectedUsersStatesList.Add(userLastStatus);
                                }
                                else if (userLastStatus == UserStatusEnum.Infected)
                                {
                                    InfectedUsersStatesList.Add(userLastStatus);
                                }
                            }

                            if (NoramlUsersStatesList.Count() > (SuspectedUsersStatesList.Count() + InfectedUsersStatesList.Count()))
                            {
                                var shopStatus = _context.ShopStatus.Where(s => s.ShopId == checkedInShop).OrderByDescending(s => s.Id).Select(u => u.UserStatusEnum).FirstOrDefault();
                                if (shopStatus != UserStatusEnum.Normal)
                                {
                                    ShopStatus NewShopStatus = new ShopStatus();
                                    NewShopStatus.ShopId         = checkedInShop;
                                    NewShopStatus.UserStatusEnum = UserStatusEnum.Normal;
                                    NewShopStatus.Date           = DateTime.Now;
                                    NewShopStatus.CreationDate   = DateTime.Now;
                                    NewShopStatus.IsActive       = true;
                                    NewShopStatus.CreatedBy      = "test";
                                    _context.ShopStatus.Add(NewShopStatus);
                                    _context.SaveChanges();
                                    NormalShopIds.Add(checkedInShop);
                                }
                            }

                            else if (SuspectedUsersStatesList.Count() > NoramlUsersStatesList.Count())
                            {
                                var shopStatus = _context.ShopStatus.Where(s => s.ShopId == checkedInShop).OrderByDescending(s => s.Id).Select(u => u.UserStatusEnum).FirstOrDefault();
                                if (shopStatus != UserStatusEnum.Suspected)
                                {
                                    ShopStatus NewShopStatus = new ShopStatus();
                                    NewShopStatus.ShopId         = checkedInShop;
                                    NewShopStatus.UserStatusEnum = UserStatusEnum.Suspected;
                                    NewShopStatus.Date           = DateTime.Now;
                                    NewShopStatus.CreationDate   = DateTime.Now;
                                    NewShopStatus.IsActive       = true;
                                    NewShopStatus.CreatedBy      = "test";
                                    _context.ShopStatus.Add(NewShopStatus);
                                    _context.SaveChanges();
                                    SuspectedShopIds.Add(checkedInShop);
                                }
                            }

                            //else if (InfectedUsersStatesList.Count() >= NoramlUsersStatesList.Count() || InfectedUsersStatesList.Count() >= SuspectedUsersStatesList.Count() || (((SuspectedUsersStatesList.Count() + InfectedUsersStatesList.Count()) > 0) && NoramlUsersStatesList.Count() == 0))
                            //{
                            //    var shopStatus = _context.ShopStatus.Where(s => s.ShopId == checkedInShop).OrderByDescending(s => s.Id).Select(u => u.UserStatusEnum).FirstOrDefault();
                            //    if (shopStatus != UserStatusEnum.Infected)
                            //    {
                            //        ShopStatus NewShopStatus = new ShopStatus();
                            //        NewShopStatus.ShopId = checkedInShop;
                            //        NewShopStatus.UserStatusEnum = UserStatusEnum.Infected;
                            //        NewShopStatus.Date = DateTime.Now;
                            //        NewShopStatus.CreationDate = DateTime.Now;
                            //        NewShopStatus.IsActive = true;
                            //        NewShopStatus.CreatedBy = "test";
                            //        _context.ShopStatus.Add(NewShopStatus);
                            //        _context.SaveChanges();
                            //        InfectedShopIds.Add(checkedInShop);
                            //    }
                            //}
                        }


                        #region SendNotification For Infected User
                        //send notifications
                        var title = Resources.MedicalStatusAlertTitle;
                        var body  = Resources.MedicalStatusIsChanged + " " + EditStatusVM.UserStatusEnum + " " + Resources.PleaseQuarantineYourSelf;

                        PayLoadViewModel payLoadData = new PayLoadViewModel
                        {
                            InfectedUserName = "******",
                            Title            = title,
                            Body             = body
                        };

                        var TokensList = GetUserToken(EditStatusVM.UserId);

                        FirebaseHelper.SendNotification(TokensList, title, body, payLoadData);

                        #endregion


                        #region SendNotification For Suspected Users
                        //send notifications
                        var titleForSuspected = Resources.MedicalStatusAlertTitle;
                        var bodyForSuspected  = Resources.MedicalStatusIsChanged + " " + Resources.ContactedWithInfectedPerson;

                        PayLoadViewModel payLoadDataForSuspected = new PayLoadViewModel
                        {
                            InfectedUserName = "******",
                            Title            = titleForSuspected,
                            Body             = bodyForSuspected
                        };

                        var TokensListForSuspected = GetUsersTokens(userUdsForNotifications);

                        FirebaseHelper.SendNotification(TokensListForSuspected, titleForSuspected, bodyForSuspected, payLoadDataForSuspected);

                        #endregion


                        #region SendNotification For Normal Shops

                        if (NormalShopIds != null && NormalShopIds.Count() > 0)
                        {
                            var titleForShop      = Resources.MedicalStatusAlertTitle;
                            var bodyForNormalShop = Resources.TruststatusIsNormal;

                            PayLoadViewModel payLoadDataForNormalShop = new PayLoadViewModel
                            {
                                InfectedUserName = "******",
                                Title            = titleForShop,
                                Body             = bodyForNormalShop
                            };

                            var TokensListForNormalShops = GetShopsTokens(NormalShopIds);

                            FirebaseHelper.SendNotification(TokensListForNormalShops, titleForShop, bodyForNormalShop, payLoadDataForNormalShop);
                        }

                        #endregion

                        #region SendNotification For Suspected Shops

                        if (SuspectedShopIds != null && SuspectedShopIds.Count() > 0)
                        {
                            var titleForShop          = Resources.MedicalStatusAlertTitle;
                            var bodyForSuspectedShops = Resources.InfectedPersonVisitStore;

                            PayLoadViewModel payLoadDataForSuspectedShops = new PayLoadViewModel
                            {
                                InfectedUserName = "******",
                                Title            = titleForShop,
                                Body             = bodyForSuspectedShops
                            };

                            var TokensListForSuspectedShops = GetShopsTokens(SuspectedShopIds);

                            FirebaseHelper.SendNotification(TokensListForSuspectedShops, titleForShop, bodyForSuspectedShops, payLoadDataForSuspectedShops);
                        }

                        #endregion

                        //#region SendNotification For Infected Shops

                        //if (InfectedShopIds != null && InfectedShopIds.Count() > 0)
                        //{
                        //    var titleForShop = Resources.MedicalStatusAlertTitle;
                        //    var bodyForInfectedShops = Resources.InfectedPersonVisitStore;

                        //    PayLoadViewModel payLoadDataForInfectedShops = new PayLoadViewModel
                        //    {
                        //        InfectedUserName = "******",
                        //        Title = titleForShop,
                        //        Body = bodyForInfectedShops
                        //    };

                        //    var TokensListForInfectedShops = GetShopsTokens(InfectedShopIds);

                        //    FirebaseHelper.SendNotification(TokensListForInfectedShops, titleForShop, bodyForInfectedShops, payLoadDataForInfectedShops);

                        //}

                        //#endregion


                        return(new Result()
                        {
                            IsSuccess = true,
                            Errors = new List <string>()
                        });
                    }
                    else
                    {
                        return(new Result()
                        {
                            IsSuccess = false,
                            Errors = new List <string> {
                                Resources.UserIsAlreadyOnThisStatus
                            }
                        });
                    }
                }
                else
                {
                    return(new Result()
                    {
                        IsSuccess = false,
                        Errors = new List <string> {
                            Resources.UserNotExist
                        }
                    });
                }
            }
            else
            {
                // change user status
                var UserId    = _context.Users.Where(u => u.Id == EditStatusVM.UserId).Select(u => u.Id).FirstOrDefault();
                var oldStatus = _context.UserStatus.Where(u => u.UserId == EditStatusVM.UserId).OrderByDescending(u => u.Id).Select(u => u.UserStatusEnum).FirstOrDefault();
                if (UserId != null)
                {
                    if (oldStatus != UserStatusEnum.Normal)
                    {
                        UserStatus userStatus = new UserStatus();
                        userStatus.UserId         = UserId;
                        userStatus.UserStatusEnum = EditStatusVM.UserStatusEnum;
                        userStatus.Date           = DateTime.Now;
                        userStatus.CreationDate   = DateTime.Now;
                        userStatus.IsActive       = true;
                        userStatus.CreatedBy      = "test";
                        _context.UserStatus.Add(userStatus);
                        _context.SaveChanges();

                        #region SendNotification For Normal User
                        //send notifications
                        var title = Resources.MedicalStatusAlertTitle;
                        var body  = Resources.MedicalStatusIsChanged + " " + EditStatusVM.UserStatusEnum;

                        PayLoadViewModel payLoadData = new PayLoadViewModel
                        {
                            InfectedUserName = "******",
                            Title            = title,
                            Body             = body
                        };

                        var TokensList = GetUserToken(EditStatusVM.UserId);

                        FirebaseHelper.SendNotification(TokensList, title, body, payLoadData);

                        #endregion
                    }
                    else
                    {
                        return(new Result()
                        {
                            IsSuccess = false,
                            Errors = new List <string> {
                                Resources.UserIsAlreadyOnThisStatus
                            }
                        });
                    }
                }
                else
                {
                    return(new Result()
                    {
                        IsSuccess = false,
                        Errors = new List <string> {
                            Resources.UserNotExist
                        }
                    });
                }

                return(new Result()
                {
                    IsSuccess = true,
                    Errors = new List <string>()
                });
            }
        }