Exemple #1
0
        public bool RegisterForMobileNotifications([FromUri(Name = "")] MobileRegistration mobileRegistration)
        {
            int staffId = 0;
            //Exception exception = new Exception();
            bool updated = false;

            if (mobileRegistration.StaffId == 0)
            {
                staffId = ((CurrentLoggedInStaff)HttpContext.Current.Session["CurrentStaff"]).StaffId;
                mobileRegistration.StaffId = staffId;
            }
            if (!_repo.IsMobileUser(mobileRegistration.StaffId))
            {
                updated = false;
            }
            else
            {
                var value = _repo.RegisterForMobileNotifications(mobileRegistration);
                if ((int)value > 0)
                {
                    updated = true;
                }
            }
            return(updated);
        }
        public void Post([FromBody] MobileRegistration token)
        {
            int    userId = Classes.User.GetObjects().FirstOrDefault(x => x.Username == token.Username).UserId;
            Device device = Device.GetObjects().FirstOrDefault(x => x.UserId == userId);

            if (device != null)
            {
                device.DeviceToken   = token.Token;
                device.LastLoginDate = DateTime.Now;
                device.DeviceName    = string.Empty;
                device.Update();
            }
            else
            {
                Device willInsertDevice = new Device();
                willInsertDevice.UserId        = userId;
                willInsertDevice.DeviceToken   = token.Token;
                willInsertDevice.LastLoginDate = DateTime.Now;
                willInsertDevice.DeviceName    = string.Empty;
                willInsertDevice.InsertDB();
            }
        }
        void SendRegistrationToServer(string token)
        {
            try
            {
                string username = GlobalSettings.username;
                if (!string.IsNullOrEmpty(username))
                {
                    MobileRegistration tok = new MobileRegistration();
                    tok.Username = username;;
                    tok.Token    = token;
                    Classes.Device.SaveToken(tok);

                    //tok.Process = "Register";
                    //new TokenHelper().Save(tok).Wait();
                }
            }
            catch (Exception ex)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.SetTitle(ex.Message);
                Dialog dialog = builder.Create();
                dialog.Show();
            }
        }
        /// <summary>
        /// Update RegisterForMobileNotifications flag in StaffPreferences table
        /// <returns></returns>
        public int RegisterForMobileNotifications(MobileRegistration mobileRegistration)
        {
            int affectedRows = 0;

            using (var dbTransaction = _scEntity.Database.BeginTransaction())
            {
                try
                {
                    var createdBy = HttpContext.Current.Session["CurrentStaff"] == null ? "MobileApi" : ((CurrentLoggedInStaff)HttpContext.Current.Session["CurrentStaff"]).UserCode;

                    var staff = _scEntity.StaffPreferences
                                .Where(s => s.StaffId == mobileRegistration.StaffId).FirstOrDefault();

                    staff.RegisteredForMobileNotifications = mobileRegistration.RegisteredForMobileNotifications;
                    staff.RegisteredForEmailNotifications  = mobileRegistration.RegisteredForEmailNotifications;
                    staff.RegisteredForSMSNotifications    = mobileRegistration.RegisteredForSMSNotifications;
                    staff.ModifiedBy   = "MobileApi";
                    staff.ModifiedDate = DateTime.Now;
                    staff.RegisteredForMobileNotificationsTimeStamp = DateTime.Now;

                    if (_scEntity.MobileDevices.Any(d => d.MobileDeviceIdentifier == mobileRegistration.MobileDeviceIdentifier && d.StaffId == mobileRegistration.StaffId))
                    {
                        var mdevices = _scEntity.MobileDevices
                                       .Where(d => d.MobileDeviceIdentifier == mobileRegistration.MobileDeviceIdentifier && d.StaffId == mobileRegistration.StaffId)
                                       .FirstOrDefault();

                        mdevices.MobileDeviceName               = mobileRegistration.MobileDeviceName;
                        mdevices.MobileSubscriptionIdentifier   = mobileRegistration.MobileSubscriptionIdentifier;
                        mdevices.SubscribedForPushNotifications = mobileRegistration.SubscribedForPushNotifications;
                        mdevices.ModifiedBy   = createdBy;
                        mdevices.ModifiedDate = DateTime.Now;
                    }
                    else
                    {
                        MobileDevice mobileDevice = new MobileDevice();

                        mobileDevice.MobileDeviceName               = mobileRegistration.MobileDeviceName;
                        mobileDevice.MobileDeviceIdentifier         = mobileRegistration.MobileDeviceIdentifier;
                        mobileDevice.MobileSubscriptionIdentifier   = mobileRegistration.MobileSubscriptionIdentifier;
                        mobileDevice.SubscribedForPushNotifications = mobileRegistration.SubscribedForPushNotifications;
                        mobileDevice.StaffId      = mobileRegistration.StaffId;
                        mobileDevice.CreatedBy    = mobileDevice.ModifiedBy = createdBy;
                        mobileDevice.ModifiedDate = mobileDevice.CreatedDate = DateTime.Now;

                        _scEntity.MobileDevices.Add(mobileDevice);
                    }

                    affectedRows = _scEntity.SaveChanges();
                    if (affectedRows > 0)
                    {
                        dbTransaction.Commit();
                    }
                }

                catch (Exception ex)
                {
                    dbTransaction.Rollback();
                    throw ex;
                }
            }
            return(affectedRows);
        }