示例#1
0
        public void Put(int id, [FromBody] PhotographerInfo photographer)
        {
            var identity = (ClaimsIdentity)User.Identity;

            IEnumerable <Claim> claims = identity.Claims;

            var userIdClaim = claims.Where(claim => claim.Type == "user_id")?.FirstOrDefault();

            if (userIdClaim == null)
            {
                throw new Exception("user_id claim not found");
            }

            if (!int.TryParse(userIdClaim?.Value, out int userId))
            {
                throw new Exception("Invalid value for user_id in users claims");
            }

            if (id != userId || userId != photographer?.Id)
            {
                return;
            }

            this.usersDataAccessLayer.UpdatePhotographerInfo(photographer);
        }
示例#2
0
        public Status Post([FromBody] PhotographerInfo photographer)
        {
            var emailValidator = new EmailValidation();

            if (!emailValidator.IsValidEmail(photographer.Email))
            {
                return new Status
                       {
                           StatusCode = 2002,
                           IsOk       = false,
                           Message    = "Email is not valid"
                       }
            }
            ;

            if (!this.usersDataAccessLayer.IsValidUserName(photographer.UserName))
            {
                return new Status
                       {
                           StatusCode = 2001,
                           IsOk       = false,
                           Message    = "UserName is not valid"
                       }
            }
            ;

            var id = this.usersDataAccessLayer.AddPhotographer(photographer);

            return(new Status
            {
                StatusCode = 1000,
                IsOk = true,
                Message = "Your account is crated."
            });
        }
        public void Post([FromBody] PhotographerInfo photographer)
        {
            var code = this.dataAccesLayer.AddUserVerification(photographer.UserName);

            var emailSender = new SendVerificationCodeEmail(new NetworkCredential("*****@*****.**", "kanchhiking2018"));

            emailSender.Send(photographer.Email, code.ToString());
        }
        public async Task <ApplicationUser> RegisterUser(RegisterViewModel user)
        {
            switch (user.RegTypeEnum)
            {
            case RegTypeEnum.Client:
                var appUser = new ApplicationUser {
                    UserName = user.Username, Name = user.Name, Surname = user.Surname, Email = user.Email
                };
                var result = await userManager.CreateAsync(appUser, user.Password);

                if (result.Succeeded)
                {
                    await userManager.AddToRoleAsync(appUser.Id, "client");

                    var clientInfo = new ClientInfo {
                        ApplicationUserId = appUser.Id, ApplicationUser = appUser, ClientInteger = 5
                    };
                    appUser.ClientInfo = clientInfo;
                    await userManager.UpdateAsync(appUser);

                    await signInManager.SignInAsync(appUser, isPersistent : false, rememberBrowser : false);

                    return(appUser);
                }
                return(null);

            case RegTypeEnum.Photographer:
                var appUser1 = new ApplicationUser {
                    UserName = user.Username, Name = user.Name, Surname = user.Surname, Email = user.Email
                };
                var result1 = await userManager.CreateAsync(appUser1, user.Password);

                if (result1.Succeeded)
                {
                    await userManager.AddToRoleAsync(appUser1.Id, "photographer");

                    var photographerInfo = new PhotographerInfo {
                        ApplicationUserId = appUser1.Id, ApplicationUser = appUser1, ConnectState = Guid.NewGuid().ToString("N")
                    };
                    appUser1.PhotographerInfo = photographerInfo;
                    await userManager.UpdateAsync(appUser1);

                    await signInManager.SignInAsync(appUser1, isPersistent : false, rememberBrowser : false);

                    return(appUser1);
                }
                return(null);

            default:
                return(null);
            }
        }
示例#5
0
        public void GetAllPhotographerRequests()
        {
            var tokenResponse = tokenClient.RequestRefreshTokenAsync(ConfigurationManager.AppSettings["refreshToken"]).Result;

            httpClient.SetBearerToken(tokenResponse.AccessToken);

            var response = httpClient.GetAsync("api/photographerverification").Result;

            var content = response.Content;

            var jsonContent = content.ReadAsStringAsync().Result;

            var photographers = JsonConvert.DeserializeObject <List <Photographer> >(jsonContent);

            foreach (var photographer in photographers)
            {
                var photographerInfo = new PhotographerInfo
                {
                    Id                   = photographer.Id,
                    FirstName            = photographer.FirstName,
                    LastName             = photographer.LastName,
                    Gender               = photographer.Gender,
                    DateOfBirth          = photographer.DateOfBirth,
                    Email                = photographer.Email,
                    PhoneNumber          = photographer.PhoneNumber,
                    UserName             = photographer.UserName,
                    Image                = ImageConverter.ConvertImageToImageSource(photographer.Image),
                    KnowledgeOfLanguages = photographer.KnowledgeOfLanguages,
                    Profession           = photographer.Profession,
                    WorkExperience       = photographer.WorkExperience,
                    Camera               = new CameraInfo
                    {
                        Id             = photographer.Camera.Id,
                        IsProfessional = photographer.Camera.IsProfessional,
                        Model          = photographer.Camera.Model
                    },
                    HasCameraStabilizator = photographer.HasCameraStabilizator,
                    HasDron  = photographer.HasDron,
                    HasGopro = photographer.HasGopro,
                };

                var guideRequest = new PhotographerRequests()
                {
                    Photographer = photographerInfo,
                    Accept       = new Command(AcceptAsync),
                    Ignore       = new Command(IgnoreAsync)
                };

                this.PhotographerRequests.Add(guideRequest);
            }
        }
        public void GetPhotographerInfo()
        {
            var tokenResponse = tokenClient.RequestRefreshTokenAsync(ConfigurationManager.AppSettings["refreshToken"]).Result;

            this.httpClient.SetBearerToken(tokenResponse.AccessToken);

            var response = httpClient.GetAsync($"api/Photographer/{ConfigurationManager.AppSettings["userId"]}").Result;

            var content = response.Content;

            var jsonContent = content.ReadAsStringAsync().Result;

            var photographer = JsonConvert.DeserializeObject <Photographer>(jsonContent);

            var photographerInfo = new PhotographerInfo
            {
                Id                    = photographer.Id,
                FirstName             = photographer.FirstName,
                LastName              = photographer.LastName,
                Gender                = photographer.Gender,
                DateOfBirth           = photographer.DateOfBirth,
                Email                 = photographer.Email,
                PhoneNumber           = photographer.PhoneNumber,
                UserName              = photographer.UserName,
                KnowledgeOfLanguages  = photographer.KnowledgeOfLanguages,
                NumberOfAppraisers    = photographer.NumberOfAppraisers,
                Profession            = photographer.Profession,
                WorkExperience        = photographer.WorkExperience,
                Image                 = ImageConverter.ConvertImageToImageSource(photographer.Image) ?? ImageConverter.DefaultProfilePicture(photographer.Gender),
                HasCameraStabilizator = photographer.HasCameraStabilizator,
                HasDron               = photographer.HasDron,
                HasGopro              = photographer.HasGopro,
                Rating                = photographer.Rating,
                Camera                = new CameraInfo
                {
                    Id             = photographer.Camera.Id,
                    IsProfessional = photographer.Camera.IsProfessional,
                    Model          = photographer.Camera.Model
                }
            };

            Photographer = photographerInfo;
        }
示例#7
0
        private async Task <PhotographerInfo> GetPhotographerAsync(int guideId)
        {
            var tokenResponse = await tokenClient.RequestRefreshTokenAsync(ConfigurationManager.AppSettings["refreshToken"]);

            var httpClient = new HttpClient
            {
                BaseAddress = new Uri(ConfigurationManager.AppSettings["userManagementBaseUri"])
            };

            httpClient.SetBearerToken(tokenResponse.AccessToken);

            var httpResponse = await httpClient.GetAsync($"api/Photographer/{guideId}");

            var content = httpResponse.Content;

            var photographerJson = await content.ReadAsStringAsync();

            var photographer = JsonConvert.DeserializeObject <Photographer>(photographerJson);

            var camera = new CameraInfo
            {
                Id             = photographer.Camera.Id,
                IsProfessional = photographer.Camera.IsProfessional,
                Model          = photographer.Camera.Model
            };

            var photographerInfo = new PhotographerInfo
            {
                Id                    = photographer.Id,
                FirstName             = photographer.FirstName,
                LastName              = photographer.LastName,
                DateOfBirth           = photographer.DateOfBirth,
                KnowledgeOfLanguages  = photographer.KnowledgeOfLanguages,
                Email                 = photographer.Email,
                Gender                = photographer.Gender,
                NumberOfAppraisers    = photographer.NumberOfAppraisers,
                PhoneNumber           = photographer.PhoneNumber,
                Rating                = photographer.Rating,
                WorkExperience        = photographer.WorkExperience,
                Profession            = photographer.Profession,
                HasCameraStabilizator = photographer.HasCameraStabilizator,
                HasDron               = photographer.HasDron,
                HasGopro              = photographer.HasGopro,
                Camera                = camera
            };

            if (photographerInfo.Image != null)
            {
                photographerInfo.Image = ImageConverter.ConvertImageToImageSource(photographer.Image);
            }
            else
            {
                BitmapImage img = new BitmapImage();
                img.BeginInit();
                if (photographerInfo.Gender == "Female")
                {
                    img.UriSource = new Uri(@"pack://*****:*****@"pack://application:,,,/Kanch;component/Images/male.jpg");
                }
                img.EndInit();
                photographerInfo.Image = img;
            }

            return(photographerInfo);
        }