예제 #1
0
        //Register
        public async static Task <WebResult <LoginData <ShopDTO> > > Register(ShopDTO shopDto, Uri request)
        {
            using (ProjectEntities db = new ProjectEntities())
            {
                if (db.Shops.FirstOrDefault(w => w.mailShop == shopDto.mailShop) != null)//אם יש כבר  כזה מייל או כזו סיסמה

                {
                    return new WebResult <LoginData <ShopDTO> >
                           {
                               Message = "משתמש כבר קיים במערכת",
                               Status  = false,
                               Value   = null
                           }
                }
                ;
                List <CategoryDTO>      sourceCats        = shopDto.Categories;
                List <Category_to_shop> category_To_Shops = new List <Category_to_shop>();
                foreach (var item in sourceCats)
                {
                    db.Category_to_shop.Add(new Category_to_shop()
                    {
                        codeCategory = item.codeCategory, codeShop = shopDto.codeShop
                    });
                }

                db.Shops.Add(ShopCast.GetShop(shopDto));
                try
                {
                    if (db.SaveChanges() > 0)//בדיקה שהמידע נשמר
                    {
                        var accessToken = await GetTokenDataAsync(shopDto.mailShop, shopDto.passwordShop, request);

                        if (!string.IsNullOrEmpty(accessToken))
                        {
                            return(new WebResult <LoginData <ShopDTO> >
                            {
                                Status = true,
                                Message = "התחברת בהצלחה",
                                Value = new LoginData <ShopDTO>
                                {
                                    TokenJson = accessToken,
                                    objectDTO = shopDto
                                }
                            });
                        }
                    }
                }
                catch (Exception e)
                {
                    var a = e.Data;
                }
                return(new WebResult <LoginData <ShopDTO> >
                {
                    Status = false,
                    Message = "ההרשמה נכשלה",
                    Value = null
                });
            }
        }
예제 #2
0
        //Login
        public static async Task <WebResult <LoginData <ShopDTO> > > Login(string mail, string password, Uri requestUri)
        {
            using (ProjectEntities db = new ProjectEntities())
            {
                var shop = db.Shops.Where(w => w.mailShop == mail).FirstOrDefault();
                if (shop != null)
                {
                    if (shop.passwordShop == password)
                    {
                        //אם המשתמש קיים במאגר המשך לקבלת טוקן, אחרת החזר שגיאה שהמתשמש לא קיים
                        {
                            ShopDTO shopDto = ShopCast.GetShopDTO(shop);

                            List <int> codesCategories = db.Category_to_shop.Where(c => c.codeShop == shop.codeShop).Select(x => x.codeCategory).ToList();
                            //Category category;
                            //shopDto.Categories = new List<CategoryDTO>();
                            //foreach (var item in codesCategories)
                            //{
                            //    category = db.Categories.Find(item);

                            //    if (category != null)
                            //        shopDto.Categories.Add(CategoryCast.GetCategoryDTO(category));
                            //}
                            var accessToken = await GetTokenDataAsync(shopDto.mailShop, shopDto.passwordShop, requestUri);

                            if (!string.IsNullOrEmpty(accessToken))
                            {
                                return(new WebResult <LoginData <ShopDTO> >
                                {
                                    Status = true,
                                    Message = "התחברת בהצלחה",
                                    Value = new LoginData <ShopDTO>
                                    {
                                        TokenJson = accessToken,
                                        objectDTO = shopDto
                                    }
                                });
                            }
                        }
                    }
                    else
                    {
                        return(new WebResult <LoginData <ShopDTO> >
                        {
                            Status = false,
                            Message = " אין משתמש רשום בשם וסיסמא זו  ",
                            Value = null
                        });
                    }
                }
                return(new WebResult <LoginData <ShopDTO> >
                {
                    Status = false,
                    Message = " אין משתמש רשום ",
                    Value = null
                });
            }
        }
        public override Task ExecuteBindingAsync(ModelMetadataProvider metadataProvider,
                                                 HttpActionContext actionContext, CancellationToken cancellationToken)
        {
            var user     = HttpContext.Current.User as ClaimsPrincipal;
            var identity = user.Identity as ClaimsIdentity;
            var claim    = identity.Claims.Where(c => c.Type == ClaimTypes.Name).Select(s => s.Value).SingleOrDefault();
            var shop     = db.Shops.Where(w => w.mailShop == claim).FirstOrDefault();

            actionContext.ActionArguments[Descriptor.ParameterName] = shop == null?null: ShopCast.GetShopDTO(shop);
            return(Task.FromResult <object>(null));
        }