public UserService(HttpClient httpClient, URLRepository urlRepository, JsonSerializer camelCaseJsonSerializer, IStore <ApplicationState> appStore) :
            base(httpClient, urlRepository, appStore)
        {
            this.camelCaseJsonSerializer = camelCaseJsonSerializer ?? throw new ArgumentNullException(nameof(camelCaseJsonSerializer));

            this.jsonSerializerSettings             = new JsonSerializerSettings();
            jsonSerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
예제 #2
0
        public IActionResult ListOfURLs()
        {
            var authDb = new Authentication(_connectionString);
            var user   = authDb.GetByEmail(User.Identity.Name);

            var repo = new URLRepository(_connectionString);

            return(View());
        }
예제 #3
0
        public MainPage()
        {
            InitializeComponent();

            HttpClient    httpClient    = new HttpClient();
            IImageService imageServie   = new ImageService(httpClient);
            URLRepository urlRepository = new URLRepository(@"http://3f2a9006.ngrok.io/");

            BindingContext = new PhotoViewModel(imageServie, urlRepository);
        }
예제 #4
0
        static void TestUrlCaller()
        {
            var stopWatch = new Stopwatch();

            stopWatch.Start();

            SyncURLCaller urlCaller = new SyncURLCaller((URLRepository.GetRepository().GetURLs()));
            long          sum       = urlCaller.CallMultipleURL();

            stopWatch.Stop();

            long milliseconds = stopWatch.ElapsedMilliseconds;

            Console.WriteLine(string.Format("Asyncronous method:\n\tTotal length: {0}\n\tTotal time (ms): {1}", sum, milliseconds));
        }
        public LoginViewModel(
            IStore <ApplicationState> appStore,
            string googleLoginUrl,
            string facebookLoginUrl,
            IExternalServiceLoginUserActionCreator facebookLoginUserActionCreator,
            ILoginUserActionCreator loginUserActionCreator,
            URLRepository urlRepository
            ) : base(appStore)
        {
            GoogleLoginUrl   = googleLoginUrl;
            FacebookLoginUrl = facebookLoginUrl;

            this.loginUserActionCreator = loginUserActionCreator ?? throw new ArgumentNullException(nameof(loginUserActionCreator));
            this.externalServiceLoginUserActionCreator = facebookLoginUserActionCreator ?? throw new ArgumentNullException(nameof(facebookLoginUserActionCreator));
            this.urlRepository = urlRepository ?? throw new ArgumentNullException(nameof(urlRepository));

            var loginSubscription = appStore
                                    .DistinctUntilChanged(state => new { state.UserState.Login.Status })
                                    .SubscribeWithError(state =>
            {
                var loginStatus = state.UserState.Login.Status;

                if (loginStatus == Status.Setting)
                {
                    IsBusy = true;
                    IsVisibleWrongCredentialLabel = false;
                }
                else if (loginStatus == Status.Error)
                {
                    IsBusy = false;
                    IsVisibleWrongCredentialLabel = true;
                }
                else if (loginStatus == Status.Success)
                {
                    IsBusy = false;
                    App.Current.MainPage.Navigation.PopModalAsync();
                }
            }, error => { appStore.Dispatch(new SetErrorAction(error, "LoginViewModel - subscription.")); });

            subscriptions.Add(loginSubscription);
        }
 public FacebookService(URLRepository urlRepository, JsonSerializer camelCaseJsonSerializer)
 {
     this.urlRepository           = urlRepository ?? throw new ArgumentNullException(nameof(urlRepository));
     this.camelCaseJsonSerializer = camelCaseJsonSerializer ?? throw new ArgumentNullException(nameof(camelCaseJsonSerializer));
 }
 public WrongPlaceReportService(HttpClient httpClient, URLRepository urlRepository, JsonSerializer camelCaseJsonSerializer)
 {
     this.httpClient              = httpClient ?? throw new ArgumentNullException(nameof(HttpClient));
     this.urlRepository           = urlRepository ?? throw new ArgumentNullException(nameof(urlRepository));
     this.camelCaseJsonSerializer = camelCaseJsonSerializer ?? throw new ArgumentNullException(nameof(camelCaseJsonSerializer));
 }
예제 #8
0
        public UserDetailsViewModel(IStore <ApplicationState> appStore, IPhotoProvider photoProvider,
                                    IUserService userService, IUpdateUserActionCreator updateUserActionCreator, URLRepository urlRepository) : base(appStore)
        {
            this.userService             = userService ?? throw new ArgumentNullException(nameof(photoProvider));
            this.photoProvider           = photoProvider ?? throw new ArgumentNullException(nameof(photoProvider));
            this.updateUserActionCreator = updateUserActionCreator ?? throw new ArgumentNullException(nameof(updateUserActionCreator));
            this.urlRepository           = urlRepository ?? throw new ArgumentNullException(nameof(urlRepository));

            var userDetailsSubscription = appStore
                                          .DistinctUntilChanged(state => new { state.UserState.User })
                                          .SubscribeWithError(state =>
            {
                var user = state.UserState.User;
                if (user == null)
                {
                    IsUserLoggedIn = false;
                    return;
                }

                IsUserLoggedIn = true;
                SetViewFields(user);
            },
                                                              error => { appStore.Dispatch(new SetErrorAction(error, "UserDetailsSubscription in UserDetailsViewModel.")); });

            subscriptions.Add(userDetailsSubscription);

            var updateUserSubscription = appStore
                                         .DistinctUntilChanged(state => new { state.UserState.Edit })
                                         .Subscribe(state =>
            {
                var edit = state.UserState.Edit;
                if (edit.Status == Core.Enums.Status.Setting)
                {
                    IsBusy = true;
                }
                if (edit.Status == Core.Enums.Status.Error)
                {
                    IsBusy    = false;
                    var error = edit.Error as EditUserException;
                    if (error != null)
                    {
                        IsEmailValid = false;
                        if (error.ServerErrorMessage != null)
                        {
                            EmailMessage = error.ServerErrorMessage;
                        }

                        if (error.EmailOccupidMessage != null)
                        {
                            EmailMessage = error.EmailOccupidMessage;
                        }
                    }
                }
                if (edit.Status == Core.Enums.Status.Success)
                {
                    App.Current.MainPage.Navigation.PopAsync();
                }
            });

            subscriptions.Add(updateUserSubscription);
        }
예제 #9
0
 public BaseService(HttpClient httpClient, URLRepository urlRepository, IStore <ApplicationState> appStore)
 {
     this.appStore      = appStore ?? throw new ArgumentNullException(nameof(appStore));
     this.httpClient    = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
     this.urlRepository = urlRepository ?? throw new ArgumentNullException(nameof(urlRepository));
 }
예제 #10
0
 public PlaceService(HttpClient httpClient, URLRepository urlRepository, JsonSerializer camelCaseJsonSerializer, IStore <ApplicationState> appStore) :
     base(httpClient, urlRepository, appStore)
 {
     this.camelCaseJsonSerializer = camelCaseJsonSerializer ?? throw new ArgumentNullException(nameof(camelCaseJsonSerializer));
 }