Пример #1
0
 public IActionResult Subscribe([FromBody] OrderModel model)
 {
     try
     {
         var user = UserManager.Users.FirstOrDefault(x => x.Id == model.UserId);
         foreach (var item in model.SubscribesBackages)
         {
             var offerPackage = UnitOfWork.SubscribesService.GetOfferBackageByUserId(item.UserId, item.PackageID);
             if (offerPackage != null)
             {
                 UnitOfWork.SubscribesService.Delete(offerPackage.Id);
                 UnitOfWork.Commit();
             }
             var package        = UnitOfWork.PackagesService.Get(item.PackageID);
             var subscribeModel = new SubscribesViewModel
             {
                 UserId          = item.UserId,
                 SubscribeStatus = SubscribeStatus.Pending,
                 PackageID       = item.PackageID,
                 StartDate       = item.StartDate,
                 EndDate         = item.EndDate,
                 Price           = item.Price,
                 UserName        = user.UserName,
                 UserPhone       = user.PhoneNumber,
                 UserEmail       = user.Email,
                 PackageName     = package.Name,
             };
             UnitOfWork.SubscribesService.Add(subscribeModel);
             UnitOfWork.Commit();
         }
         return(Ok(true));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public async Task <IActionResult> Register([FromBody] RegisterVm vm)
        {
            var obj   = new ResponseVMAuth();
            var userd = UserManager.Users.FirstOrDefault(x => x.Email == vm.Email);

            if (UserManager.Users.Any(usr => usr.UserName == vm.UserName))
            {
                obj.Message  = Language == Language.Arabic ? "اسم المستخدم موجود" : "UserName Aready In Use";
                obj.IsSucess = false;
                return(BadRequest(obj));
            }
            else if (UserManager.Users.Any(usr => usr.Email == vm.Email))
            {
                obj.Message  = Language == Language.Arabic ? "الايميل موجود" : "Email Aready In Use";
                obj.IsSucess = false;
                return(BadRequest(obj));
            }
            else if (UserManager.Users.Any(usr => usr.PhoneNumber == vm.PhoneNumber))
            {
                obj.Message  = Language == Language.Arabic ? "رقم الموبايل موجود" : "PhoneNumber Aready In Use";
                obj.IsSucess = false;
                return(BadRequest(obj));
            }
            else
            {
                if (ModelState.IsValid)
                {
                    var user = new ApplicationUser()
                    {
                        UserName    = vm.UserName,
                        Email       = vm.Email,
                        PhoneNumber = vm.PhoneNumber,
                        FirstName   = vm.FirstName,
                        LastName    = vm.LastName,
                        CityId      = vm.CityId
                    };
                    if (!string.IsNullOrEmpty(vm.PhotoName))
                    {
                        var    name      = Guid.NewGuid().ToString();
                        var    photoName = vm.PhotoName;
                        int    index     = photoName.LastIndexOf(".");
                        var    extinsion = photoName.Substring(index);
                        string path      = Path.Combine(_env.WebRootPath, "Files/ProfileImages");
                        if (!Directory.Exists(path))
                        {
                            Directory.CreateDirectory(path);
                        }
                        string filename    = Path.Combine(path + "/" + name + extinsion);
                        var    base64array = Convert.FromBase64String(vm.Photo);
                        System.IO.File.WriteAllBytes(filename, base64array);
                        user.Photo = $"Files/ProfileImages/" + name + extinsion;
                    }
                    var result = await UserManager.CreateAsync(user, vm.Password);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, false);

                        var packages = UnitOfWork.PackagesService.GetPackages().ToList();
                        user.SubscripeType = vm.OfferLimit;
                        await UserManager.UpdateAsync(user);

                        //
                        foreach (var it in packages)
                        {
                            var subscribeModel = new SubscribesViewModel
                            {
                                UserId          = user.Id,
                                PackageID       = it.Id,
                                PackageName     = it.Name,
                                SubscribeStatus = SubscribeStatus.Active,
                                SubscribeType   = (SubscribeType)vm.OfferLimit,
                                EndDate         = DateTime.Now.AddDays(vm.OfferEndDate),
                                UserName        = user.UserName,
                                UserPhone       = user.PhoneNumber,
                                UserEmail       = user.Email,
                            };
                            UnitOfWork.SubscribesService.AddOffer(subscribeModel);
                            UnitOfWork.Commit();
                        }
                        obj.IsSucess = true;
                        obj.Message  = Language == Language.Arabic ? "تم التسجيل بنجاح" : "Success  Register Done";
                        obj.Data     = user;
                        return(Ok(obj));
                    }
                    else
                    {
                        obj.Message  = Language == Language.Arabic ? "حاول التسجيل مرة اخرى" : "Please Try Again";
                        obj.IsSucess = false;
                        return(BadRequest(obj));
                    }
                }
                else
                {
                    obj.Message  = Language == Language.Arabic ? "حاول التسجيل مرة اخرى" : "Please Try Again";
                    obj.IsSucess = false;
                    return(BadRequest(obj));
                }
            }
        }