public async Task <bool> LogoutAsync()
        {
            bool success = false;

            try
            {
                if (User != null)
                {
                    await MobileService.LogoutAsync();

                    foreach (var user in ADB2CClient.Users)
                    {
                        ADB2CClient.Remove(user);
                    }
                    User = null;

                    Settings.AuthToken = string.Empty;
                    Settings.UserId    = string.Empty;
                    Settings.Role      = string.Empty;

                    success = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(success);
        }
Beispiel #2
0
        public async Task <bool> LogoutAsync()
        {
            if (!IsInitialized)
            {
                await InitializeAsync();
            }

            await MobileService.LogoutAsync();

            var settings = await ReadSettingsAsync();

            if (settings != null)
            {
                settings.AuthToken = string.Empty;
                settings.UserId    = string.Empty;

                var result = await SaveSettingsAsync(settings);

                return(result);
            }
            else
            {
                return(true);
            }
        }
Beispiel #3
0
        public async Task LogoutAsync()
        {
            if (!IsInitialized)
            {
                await InitializeAsync();
            }

            await MobileService.LogoutAsync();

            StoreSettings settings = null;

            try
            {
                settings = await ReadSettingsAsync();
            }
            catch (MobileServicePushFailedException exc)
            {
                if (exc.PushResult != null)
                {
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Unable to read settings items: " + ex);
            }

            if (settings != null)
            {
                settings.AuthToken = string.Empty;
                settings.UserId    = string.Empty;

                await SaveSettingsAsync(settings);
            }
        }
        async public Task Login(string provider)
        {
            // If authentication is enabled and we're not authenticated yet
            if (Authenticator != null && !IsAuthenticated)
            {
                IsAuthenticated = await Authenticator.Authenticate(provider);
            }

            if (IsAuthenticated)
            {
                // Login is no longer needed now that we know we are logged in
                Locator.Instance.IsLoginNeeded = false;

                try
                {
                    JToken userName = await MobileService.InvokeApiAsync("UserProfile/UserName", HttpMethod.Get, new Dictionary <string, string>() { { "provider", ApplicationCapabilities.ConvertString2IdentityProvider(provider).ToString() } });

                    LoginStatus = userName.ToObject(typeof(string)) as string;
                }
                catch (Exception)
                {
                    LoginStatus = "<User Name Unavailable>";
                }
            }
            else
            {
                LoginStatus = "Login";
            }
        }
        private async void CheckForAutoLogin()
        {
            if (Settings.LastUsedEmail != string.Empty)
            {
                var users = (await MobileService.GetTable <TBL_Users>().Where(mail => mail.emailadd == Settings.LastUsedEmail).ToListAsync()).FirstOrDefault();
                if (users != null)
                {
                    user_id   = users.Id;
                    fullname  = users.full_name;
                    mobilenum = users.mobile_num;
                    emailadd  = users.emailadd;
                    password  = users.password;
                    datereg   = users.datereg;
                    propic    = users.propic;
                    picstr    = users.picstr;
                    //user_id = null;
                    CurrentOrderId = null;
                    refresh        = false;
                    //indicatorloader.IsVisible = false;
                    //Settings.LastUsedEmail = chkremember.IsChecked ? emailentry.Text : "";
                    //await DisplayAlert("Success", "Email or password is incorrect!", "OK");
                    Device.BeginInvokeOnMainThread(() => { Xamarin.Forms.Application.Current.MainPage = new AppShell(); });
                    await Navigation.PushAsync(new MenuPage(), true);

                    //var page = MenuPage as NavigationPage;
                }
            }
            else
            {
                Device.BeginInvokeOnMainThread(() => { Xamarin.Forms.Application.Current.MainPage = new LoginPage(); });
                await Navigation.PushAsync(new LoginPage(), true);
            }
        }
        public void ConstructorShouldFailWhenMobileServiceIsNull()
        {
            //Act
            MobileService service = null;

            new SetupController(service);
        }
Beispiel #7
0
        public async Task <ObservableCollection <TaskSubitem> > GetCompletedTaskSubitems(string userId, DateTime fromDate, DateTime toDate)
        {
            if (await EnsureLogin())
            {
                var taskService = new TaskItemService(base.AccessToken);
                var taskItems   = await taskService.GetTaskItems(userId);

                var result = new List <TaskSubitem>();
                foreach (var taskItem in taskItems)
                {
                    var taskSubitems =
                        await
                        MobileService.GetTable <TaskSubitem>()
                        .Where(t => t.TaskItemId == taskItem.Id && t.TaskStatusId == ((int)TaskStatusEnum.Completed).ToString())
                        .ToCollectionAsync();

                    Func <TaskSubitem, bool> func = t => t.ExecutorId == userId && t.StartDateTime.HasValue && t.StartDateTime.Value.Date >= fromDate.Date &&
                                                    t.EndDateTime.HasValue && t.EndDateTime.Value.Date < toDate.Date;

                    if (taskSubitems.Any(func))
                    {
                        result.AddRange(taskSubitems.Where(func));
                    }
                }
                return(result.ToObservableCollection());
            }
            return(null);
        }
Beispiel #8
0
 public async Task UpdateGroup(Group group)
 {
     if (await EnsureLogin())
     {
         await MobileService.GetTable <Group>().UpdateAsync(group);
     }
 }
Beispiel #9
0
        private async Task AddUserGroup(User user)
        {
            var userGroups = await MobileService.GetTable <UserGroup>().ToListAsync();

            var userGroup = userGroups.Where(ug => ug.UserId == user.Id);

            if (userGroup.FirstOrDefault() == null)
            {
                Group group = new Group()
                {
                    Id        = Guid.NewGuid().ToString(),
                    GroupName = "Default group for user: " + user.Id
                };
                await MobileService.GetTable <Group>().InsertAsync(@group);

                var availableRoles = await MobileService.GetTable <RoleType>().ToListAsync();

                var adminRole = availableRoles.Where(r => r.RoleKey == (int)UserRoleEnum.Admin);

                UserGroup ug = new UserGroup()
                {
                    Id                 = Guid.NewGuid().ToString(),
                    GroupId            = @group.Id,
                    UserId             = user.Id,
                    RoleTypeId         = adminRole.Single().Id,
                    IsUserDefaultGroup = true
                };

                await MobileService.GetTable <UserGroup>().InsertAsync(ug);
            }
        }
Beispiel #10
0
        private async Task AddExtUser(User user, UserDomainsEnum userDomainEnum, string externalUserId)
        {
            var userDomainsTable = MobileService.GetTable <UserDomain>();
            var userDomains      = await userDomainsTable.ToCollectionAsync();

            var domain = userDomains.SingleOrDefault(d => d.DomainKey == (int)userDomainEnum);

            if (domain != null)
            {
                var externalUserstable = MobileService.GetTable <ExternalUser>();
                var externalUsers      = await externalUserstable.ToCollectionAsync();

                var extUsers = externalUsers.Where(eu => eu.UserId == user.Id && eu.UserDomainId == domain.Id);
                if (extUsers.SingleOrDefault() == null)
                {
                    ExternalUser extUser = new ExternalUser()
                    {
                        Id             = Guid.NewGuid().ToString(),
                        UserId         = user.Id,
                        ExternalUserId = externalUserId,
                        UserDomainId   = domain.Id
                    };
                    await externalUserstable.InsertAsync(extUser);
                }
            }
        }
Beispiel #11
0
        public async Task InsertUser(User user, string extUserId)
        {
            if (await EnsureLogin() && !string.IsNullOrWhiteSpace(extUserId))
            {
                var userInUser =
                    await MobileService.GetTable <User>().Where(u => u.Email == user.Email).ToCollectionAsync();

                if (userInUser.SingleOrDefault() == null)
                {
                    await MobileService.GetTable <User>().InsertAsync(user);
                }
                else
                {
                    user = userInUser.Single();
                }
                //await table.InsertAsync(user);
                ExternalUser externalUser = new ExternalUser()
                {
                    Id             = Guid.NewGuid().ToString(),
                    UserId         = user.Id,
                    ExternalUserId = extUserId,
                    UserDomainId   =
                        (await
                         MobileService.GetTable <UserDomain>()
                         .Where(u => u.DomainKey == (int)UserDomainEnum.Microsoft)
                         .ToCollectionAsync()).Single().Id
                };
                await AddExternalUser(externalUser);
                await AddUserGroup(user);
            }
        }
Beispiel #12
0
        public async Task <string> UserExist(string userId)
        {
            if (await EnsureLogin())
            {
                //var usrDB = MobileService.GetTable<ExternalUser>().Where(u => u.ExternalUserId == userId).ToListAsync();
                // var usrDB = MobileService.GetTable<ExternalUser>().Where(u => u.ExternalUserId == userId).Select(u =>u.Id);
                //string usrDB = MobileService.GetTable<ExternalUser>().Where(u => u.ExternalUserId == userId).ToString();
                try
                {
                    var table = await MobileService.GetTable <ExternalUser>()
                                .Where(u => u.ExternalUserId == userId)
                                .ToCollectionAsync();

                    var usrDB = table.SingleOrDefault();
                    if (usrDB == null)
                    {
                        return(null);
                    }
                    else
                    {
                        return(usrDB.UserId);
                    }
                }
                catch (Exception ex)
                {
                }
            }


            return(null);
        }
Beispiel #13
0
        public async Task <User> GetUser(string externalUserId, UserDomainEnum currentUserDomain)
        {
            if (await EnsureLogin())
            {
                try
                {
                    var domainsTable = MobileService.GetTable <UserDomain>();
                    var domains      = await domainsTable.ToCollectionAsync();

                    var currentDomain = domains.Single(d => d.DomainKey == (int)currentUserDomain);
                    var extUsers      = await MobileService.GetTable <ExternalUser>().ToListAsync();

                    var currentExtUser =
                        extUsers.Single(u => u.ExternalUserId == externalUserId && u.UserDomainId == currentDomain.Id);
                    var users = await MobileService.GetTable <User>().ToListAsync();

                    var user = users.Single(u => u.Id == currentExtUser.UserId);
                    return(user);
                }
                catch (Exception ex)
                {
                }
                return(null);
            }
            return(null);
        }
Beispiel #14
0
        public async Task AddUserGroup(User user)
        {
            var userGroups = await MobileService.GetTable <UserGroup>().Where(t => t.UserId == user.Id).ToCollectionAsync();

            var userGroupExist = userGroups.Where(i => i.IsUserDefaultGroup);

            var userHasGroup = userGroupExist.FirstOrDefault();

            if (userHasGroup == null)
            {
                Group group = new Group()
                {
                    Id        = Guid.NewGuid().ToString(),
                    GroupName = "Default group for user: " + user.Id
                };

                await MobileService.GetTable <Group>().InsertAsync(group);

                var roles =
                    await MobileService.GetTable <RoleType>().Where(r => r.RoleKey == (int)RoleTypeEnum.Admin).ToCollectionAsync();

                var userRoleId = roles.Single().Id;

                UserGroup userGroup = new UserGroup()
                {
                    Id                 = Guid.NewGuid().ToString(),
                    UserId             = user.Id,
                    GroupId            = group.Id,
                    RoleTypeId         = userRoleId,
                    IsUserDefaultGroup = true
                };
                await MobileService.GetTable <UserGroup>().InsertAsync(userGroup);
            }
        }
Beispiel #15
0
        public async Task <System.Collections.ObjectModel.ObservableCollection <TaskSubitem> > GetUserTaskSubitemsAlreadyStarted(string userId)
        {
            if (await EnsureLogin())
            {
                var taskService = new TaskItemService(base.AccessToken);
                var taskItems   = await taskService.GetTaskItems(userId);

                var result = new List <TaskSubitem>();
                foreach (var taskItem in taskItems)
                {
                    var taskSubitems =
                        await
                        MobileService.GetTable <TaskSubitem>()
                        .Where(t => t.TaskItemId == taskItem.Id && t.TaskStatusId != ((int)TaskStatusEnum.Completed).ToString() && t.TaskStatusId != ((int)TaskStatusEnum.Rejected).ToString())
                        .ToCollectionAsync();

                    Func <TaskSubitem, bool> func = t => t.ExecutorId == userId && t.StartDateTime.HasValue && t.StartDateTime.Value.Date <= DateTime.Today &&
                                                    t.StartDateTime.Value.Date > DateTime.Today.AddDays(-2);

                    if (taskSubitems.Any(func))
                    {
                        result.AddRange(taskSubitems.Where(func));
                    }
                }
                return(result.ToObservableCollection());
            }
            return(null);
        }
Beispiel #16
0
 public async Task InsertTodoItem(ToDoItem toDoItem)
 {
     if (await EnsureLogin())
     {
         await MobileService.GetTable <ToDoItem>().InsertAsync(toDoItem);
     }
 }
Beispiel #17
0
        public async Task <ActionResult> MobileData()
        {
            var service = new MobileService();
            var result  = await service.MobileData();

            return(Ok(result));
        }
Beispiel #18
0
        public async Task <ObservableCollection <Group> > GetGroupsAvailableForUserWhereUserIsAdmin(string externalUserId)
        {
            if (await EnsureLogin())
            {
                var extUsers = await MobileService.GetTable <ExternalUser>().ToListAsync();

                var currentExtUser = extUsers.Single(u => u.ExternalUserId == externalUserId);
                var allUserGroups  = await MobileService.GetTable <UserGroup>().ToListAsync();

                var           userGroups = allUserGroups.Where(ug => ug.UserId == currentExtUser.UserId);
                List <string> groupIds   = userGroups.Select(ug => ug.GroupId).ToList();
                var           allGroups  = await MobileService.GetTable <Group>().ToListAsync();

                var availableGroups        = allGroups.Where(g => groupIds.Contains(g.Id));
                var roleTypeService        = new RoleTypeService(base.AccessToken);
                var groupsWhereUserIsAdmin = new ObservableCollection <Group>();
                foreach (var group in availableGroups)
                {
                    if (await roleTypeService.CanUserAddOrDeleteItem(currentExtUser.UserId, group.Id))
                    {
                        groupsWhereUserIsAdmin.Add(group);
                    }
                }
                return(groupsWhereUserIsAdmin.ToObservableCollection());
            }
            return(null);
        }
Beispiel #19
0
        public async Task <ObservableCollection <Group> > GetGroupForUser(string externalUserId)
        {
            if (await EnsureLogin())
            {
                try
                {
                    var extUsers = await MobileService.GetTable <ExternalUser>().ToListAsync();

                    var currentExtUser = extUsers.Single(u => u.ExternalUserId == externalUserId);
                    var allUserGroups  = await MobileService.GetTable <UserGroup>().ToListAsync();

                    var           userGroups = allUserGroups.Where(ug => ug.UserId == currentExtUser.UserId);
                    List <string> groupIds   = userGroups.Select(ug => ug.GroupId).ToList();
                    var           allGroups  = await MobileService.GetTable <Group>().ToListAsync();

                    var availableGroups = allGroups.Where(g => groupIds.Contains(g.Id));
                    return(availableGroups.ToObservableCollection());
                }
                catch (Exception ex)
                {
                }
            }


            return(null);
        }
Beispiel #20
0
        public async static Task <Status> Signup(Users user)
        {
            try
            {
                var users = await MobileService.GetTable <Users>().Where(x => x.email == user.email).ToListAsync();

                if (users.FirstOrDefault() == null)
                {
                    await MobileService.GetTable <Users>().InsertAsync(user);

                    return(new Models.Status()
                    {
                        result = true, message = "Successfully Registered"
                    });
                }
                else
                {
                    return(new Models.Status()
                    {
                        result = false, message = "Already Registererd"
                    });
                }
            }
            catch (Exception e)
            {
                return(new Models.Status()
                {
                    result = false, message = e.ToString()
                });
            }
        }
        public async Task <IEnumerable <Place> > GetPlacesAsync(int skip = 0, int take = 100)
        {
            var places = MobileService.GetTable <Place>();
            var result = await places.Skip(skip).Take(take).ToListAsync();

            return(result);
        }
Beispiel #22
0
        public async Task <MobileServiceUser> LoginAnonymouslyAsync(string impersonateUserId = null)
        {
            if (!IsInitialized)
            {
                await InitializeAsync();
            }

            if (string.IsNullOrEmpty(impersonateUserId))
            {
                var settings = await ReadSettingsAsync();

                impersonateUserId = settings?.UserId;                 // see if we have a saved user id from a previous token
            }

            var credentials = new JObject();

            if (!string.IsNullOrEmpty(impersonateUserId))
            {
                credentials["anonymousUserId"] = impersonateUserId;
            }
            MobileServiceUser user = await MobileService.LoginAsync("AnonymousUser", credentials);

            await CacheToken(user);

            return(user);
        }
Beispiel #23
0
        private async Task getUserAddresses()
        {
            try
            {
                RefreshView.IsRefreshing = true;
                var getAddresseses = await MobileService.GetTable <TBL_Addresses>().Where(usersId => usersId.user_id == user_id).ToListAsync();

                ListAddress.ItemsSource  = getAddresseses;
                RefreshView.IsRefreshing = false;
                if (getAddresseses.Count == 0)
                {
                    imgnofound.IsVisible  = true;
                    ListAddress.IsVisible = false;
                }
                else
                {
                    imgnofound.IsVisible  = false;
                    ListAddress.IsVisible = true;
                }
            }
            catch
            {
                RefreshView.IsRefreshing = false;
                await Navigation.PushAsync(new NoInternetPage(), false);
            }
        }
Beispiel #24
0
        public void CheckForUpdates()
        {
            try
            {
                if (CheckIfVPMobileIsRunning())
                {
                    MessageBox.Show("Vantage Points Mobile is already running.  Please use that instance.");
                    Close();
                }

                CurrentFile = "Pulling file information from server";
                MobileService.GetMainUpdateFileListAsync();
            }
            catch (EndpointNotFoundException ex)
            {
                OnNetworkDisconnect(ex);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                var message = "Error checking file";
                Logging.LogMessage(Logging.LogType.Error, message, ex);
                CurrentFile = "";
                Dispatcher.Invoke(() => Close());
            }
        }
Beispiel #25
0
        // GET: ShopItems
        public async Task <ActionResult> Index()
        {
            //return View(await db.ShopItems.ToListAsync());
            var itemlist = await MobileService.GetTable <ShopItems>().ToListAsync();

            return(View(itemlist));
        }
Beispiel #26
0
        public static async Task <Status> AddJorunal(Accounts account)
        {
            try
            {
                if (account.id == null)
                {
                    await MobileService.GetTable <Accounts>().InsertAsync(account);
                }
                else
                {
                    await MobileService.GetTable <Accounts>().UpdateAsync(account);
                }
                return(new Models.Status()
                {
                    result = true, message = "Successfully Added"
                });
            }


            catch (Exception e)
            {
                return(new Models.Status()
                {
                    result = false, message = e.ToString()
                });
            }
        }
Beispiel #27
0
 public async static Task <Status> AddLedger(Ledgers ledger)
 {
     try
     {
         if (ledger.id == null)
         {
             await MobileService.GetTable <Ledgers>().InsertAsync(ledger);
         }
         else
         {
             await MobileService.GetTable <Ledgers>().UpdateAsync(ledger);
         }
         return(new Models.Status()
         {
             result = true, message = "Successfully Added"
         });
     }
     catch (Exception e)
     {
         return(new Models.Status()
         {
             result = false, message = e.ToString()
         });
     }
 }
Beispiel #28
0
        public async Task <System.Collections.ObjectModel.ObservableCollection <TaskSubitem> > GetUserTaskSubitemsNearDeadlines(string userId)
        {
            return(await ExecuteAuthenticated(async() =>
            {
                var taskService = SimpleIoc.Default.GetInstance <ITaskItemDataService>();
                var taskItems = await taskService.GetTaskItems(userId);
                var result = new List <TaskSubitem>();
                foreach (var taskItem in taskItems)
                {
                    var taskSubitems =
                        await
                        MobileService.GetTable <TaskSubitem>()
                        .Where(t => t.TaskItemId == taskItem.Id && t.TaskStatusId != ((int)TaskStatusEnum.Completed).ToString() && t.TaskStatusId != ((int)TaskStatusEnum.Rejected).ToString())
                        .ToCollectionAsync();

                    Func <TaskSubitem, bool> func = t => t.ExecutorId == userId && t.EndDateTime.HasValue && t.EndDateTime.Value.Date >= DateTime.Today &&
                                                    t.EndDateTime.Value.Date < DateTime.Today.AddDays(3);

                    if (taskSubitems.Any(func))
                    {
                        result.AddRange(taskSubitems.Where(func));
                    }
                }
                return result.ToObservableCollection();
            }));
        }
Beispiel #29
0
 public async Task <ObservableCollection <DTO.TaskStatus> > GetAvailableTaskStatuses()
 {
     if (await EnsureLogin())
     {
         return(await MobileService.GetTable <DTO.TaskStatus>().ToCollectionAsync());
     }
     return(null);
 }
Beispiel #30
0
 public async Task <bool> InsertTaskSubitem(Model.DTO.TaskSubitem taskSubitem)
 {
     return(await ExecuteAuthenticated(async() =>
     {
         await MobileService.GetTable <TaskSubitem>().InsertAsync(taskSubitem);
         return true;
     }));
 }