コード例 #1
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         db.Dispose();
     }
     base.Dispose(disposing);
 }
コード例 #2
0
        internal static void RandomDogOwners(this IdentityDb context, int numberOfDogOwners, int emailLength, int phoneLength)
        {
            #region Helpers

            string[] EmailExtensions = new string[]
            {
                "@gmail.com", "@yahoo.com", "@outlook.com", "@yandex.com", "@aol.com", "@zoho.com", "@mail.com", "@tutanota.com"
            };

            string[] listFullNames = new string[]
            {
                "Lisette Gerhardt", "Kandis Paredes", "Carolee Ardis", "Debbi Monti", "John Chapman", "Francine Rosalez",
                "Rosette Hawkin", "Josie Poff", "Nadene Arnette", "Quinn Sharpe", "Breanna Costigan", "Reinaldo Tyra",
                "Stuart Easter", "Georgiana Molina", "Kira Pilkenton", "Olevia Coogan", "Cassaundra Breen", "Rosana Towner",
                "Georgetta Edinger", "Monique Bottomley", "Nathanial Nemitz", "Cheri Fender", "Claire Deibert", "Indira Flatt",
                "Sterling Kunz", "Lakendra Sowers", "Tandra Siguenza", "Angelique Nott", "Valrie Mcmiller", "Amina Paulos",
                "Rosetta Cervone", "Edgar Deharo", "Jacinta Mays", "Aldo Parsley", "Nelda Oritz", "Elroy Hallee", "Kathryn Enochs",
                "Thi Clift", "Arturo Vrba", "Forrest Natali", "Lorilee Herdt", "Marry Cottrell", "Manuela Musto", "Sheena Finney",
                "Audie Penny", "Ja Keogh", "Margurite Linney", "Ying Eble", "Tory Hennessy", "Somer Breed"
            };

            string RandomEmail(int numberOfLetters)
            {
                byte[] allLetters = new byte[numberOfLetters];

                for (int letter = 0; letter < numberOfLetters; letter++)
                {
                    if (letter == 0)
                    {
                        allLetters[letter] = (byte)random.Next(65, 91);
                        continue;
                    }
                    allLetters[letter] = (byte)random.Next(97, 123);
                }

                return(Encoding.ASCII.GetString(allLetters) + EmailExtensions[random.Next(EmailExtensions.Length)]);
            }

            string RandomPhoneNumber(int numberOfDigits)
            {
                char[] phoneLenght = new char[numberOfDigits];
                phoneLenght[0] = '0';
                phoneLenght[1] = '7';
                for (int i = 2; i < numberOfDigits; i++)
                {
                    if (i == 2)
                    {
                        phoneLenght[i] = random.Next(4).ToString()[0];
                        continue;
                    }

                    phoneLenght[i] = random.Next(10).ToString()[0];
                }

                return(new string(phoneLenght));
            }

            string RandomFullName()
            {
                return(listFullNames[random.Next(listFullNames.Length)]);
            }

            #endregion

            using (TransactionScope scope = new TransactionScope())
            {
                using (context = new IdentityDb())
                {
                    var haser = new PasswordHasher();
                    for (int i = 0; i < numberOfDogOwners; i++)
                    {
                        string userEmail = RandomEmail(emailLength);
                        string password  = "******";
                        string fullName  = RandomFullName();

                        var user = new ApplicationUser()
                        {
                            FirstName      = fullName.Split(null)[0],
                            LastName       = fullName.Split(null)[1],
                            PhoneNumber    = RandomPhoneNumber(9),
                            UserName       = userEmail,
                            Email          = userEmail,
                            IsConfirmed    = random.NextDouble() > 0.5,
                            LockoutEnabled = true,
                            PasswordHash   = haser.HashPassword(password)
                        };

                        context.Users.Add(user);

                        if (i % 100 == 0)
                        {
                            context.SaveChanges();
                            context.Dispose();
                            context = new IdentityDb();
                        }
                    }
                    context.SaveChanges();
                }
                scope.Complete();
            }
        }
コード例 #3
0
        public IHttpActionResult GetNotifications(int isProvider)
        {
            // GGMS Quien hace el request. de los provedores
            // en un punto esto va a tener que recibir un parametro de que cocina.. quiere ver el provider
            var providerId = ((ClaimsIdentity)User.Identity).GetUserId();
            var id = db.RestaurantProvedors.Where(r=> r.ProviderId == providerId).Select(s=>s.RestaurantId).FirstOrDefault();

            // Last Notification of Restaurant Related
            //  var id = ((ClaimsIdentity)User.Identity).GetUserId();
            //   var notification = db.Notifications.Where(x=> x.RestaurantId == id);
            var context = new IdentityDb();
            var us = context.Users.Where(x => x.Id == id).Select(u=> u.CompanyName).FirstOrDefault();
            context.Dispose();
            //   NotificationView obj = new NotificationView();

            var dueDate = DateTime.Now;

            var notificationsOrigin = db.Notifications
                   .Where(i => i.RestaurantId == id && i.IsActive == true && dueDate < i.DueDate)
                   .Select(m => new NotificationView
                   {
                       NotificationId = m.NotificationId,
                      Restaurant = us,
                       CreatedDate = m.CreatedDate,
                       DueDate = m.DueDate,
                       IngNotificationViews = db.IngNotifications.Where(d => d.NotificationId == m.NotificationId && m.IsActive == true).Select(dd => new IngNotificationView
                       {
                           IngNotificationId = dd.IngNotificationId,
                         unitMeasureRestaurant = db.Ingredients.Where(ingI => ingI.IngredientId == dd.IngDish.IngredientId).Select(x=> x.Unit.Name).FirstOrDefault(),
                           // IngredientName = db.IngNotifications.Include(inc => inc.IngDish).Where(inf => inf.IngDishId == dd.IngDishId).Select(infI => infI.IngDish.Ingredient.Name).FirstOrDefault(),
                           IngredientName = db.Ingredients.Where(ingI=> ingI.IngredientId == dd.IngDish.IngredientId).Select(name => name.Name).FirstOrDefault(),
                           TotalRequired = dd.TotalRequired,
                           UnitCost = decimal.Zero

                       }).ToList()
                   }).FirstOrDefault();

            //    ProviderName = db.
            //    CreatedDate =

            //    IngNotificationView objIng1 = new IngNotificationView();
            //    IngredientName =
            //    IngNotificationId =
            //    TotalRequired =
            //    UnitCost =
            //    DateExpired =

            //    obj.IngNotificationViews.Add(objIng1);

            //IngNotificationView objIng2 = new IngNotificationView();
            //    IngredientName =
            //    IngNotificationId =
            //    TotalRequired =
            //    UnitCost =
            //    DateExpired =

            //    obj.IngNotificationViews.Add(objIng2);

            //var userId = ((ClaimsIdentity)User.Identity).GetUserId();
            //Notification notification = db.Notifications
            //    .Include(p => p.IngNotifications.Select(s => s.IngNotiPosts))
            //    .Where(n => n.NotificationId == id && n.RestaurantId == userId)
            //    .FirstOrDefault();

            if (notificationsOrigin == null)
            {
                return NotFound();
            }

            return Ok(notificationsOrigin);
        }
コード例 #4
0
 protected override void Dispose(bool disposing)
 {
     _identityDb.Dispose();
     base.Dispose(disposing);
 }
コード例 #5
0
 protected override void Dispose(bool disposing)
 {
     _db.Dispose();
     _idb.Dispose();
     base.Dispose(disposing);
 }
コード例 #6
0
        public IHttpActionResult GetIngNotiPosts(int id)
        {
            //IngNotiPost ingNotiPost = db.IngNotiPosts.Find(id);

            // definitivamente esto necesitara refactoring por que ... hace demaciadas llamadas a db.
            GetIngPostDTO getPost = new GetIngPostDTO();
            var restaurantId = ((ClaimsIdentity)User.Identity).GetUserId();

            // get LastNotification Created. This can be used to get the specific when we get the method
            var lastNoty = (from ingN in db.IngNotifications
                            join notys in db.Notifications on ingN.NotificationId equals notys.NotificationId
                            where notys.RestaurantId == restaurantId
                            && notys.NotificationId == id
                            select new { ingN.IngNotificationId }).ToList();
            List<int> intlastNoty = lastNoty.Select(s => s.IngNotificationId).ToList<int>();
            //.Where(n => n.RestaurantId == restaurantId).OrderByDescending(o => o.CreatedDate).SingleOrDefault();)
            var context = new IdentityDb();

            var IngNotiPostsList = db.IngNotiPosts
                .Include(ix => ix.IngNotification.IngDish.Ingredient.Unit)
                .Where(r => r.RestaurantId == restaurantId && intlastNoty.Contains(r.IngNotificationId))
                .ToList();

            var providersXX = IngNotiPostsList.GroupBy(s => s.ProviderId);

            List<ProvidersIP> providers = new List<ProvidersIP>();
            List<PostIP> posts = new List<PostIP>();
            foreach (IGrouping<string, IngNotiPost> p in providersXX)
            {

                var userI = p.Select(d => d.ProviderId).FirstOrDefault();
                var ri = context.Users.Where(x => x.Id == userI).Select(u => u.Id).FirstOrDefault();
                var rn = context.Users.Where(x => x.Id == ri).Select(u => u.CompanyName).FirstOrDefault();

                providers.Add(new ProvidersIP
                {
                    Providerid = ri,
                    Name = rn
                });

            }

            var postXX = IngNotiPostsList.GroupBy(s => s.IngNotification.IngDish.IngredientId);
            int postOrder = 0;
            foreach (IGrouping<int, IngNotiPost> pp in postXX)
            {
                var or = postOrder++;
                PostIP postX = new PostIP();
                postX.ingCost = new List<IngCostIP>();
                postX.PostId = or;//pp.Select(PostId => PostId.IngNotiPostId).FirstOrDefault();
                postX.IngName = pp.Select(IngName => IngName.IngNotification.IngDish.Ingredient.Name).FirstOrDefault();
                postX.Required = pp.Select(Required => Required.IngNotification.TotalRequired).FirstOrDefault();
                postX.MeasureUnit = pp.Select(MeasureUnit => MeasureUnit.IngNotification.IngDish.Ingredient.Unit.Name).FirstOrDefault();

                foreach (var ing in pp)
                {
                    //   for (int pIndex = 0; pIndex < providers.Count; pIndex++) {

                    var userI = pp.Select(d => ing.ProviderId).FirstOrDefault();
                    var ri = context.Users.Where(x => x.Id == userI).Select(u => u.Id).FirstOrDefault();
                    var rn = context.Users.Where(x => x.Id == ri).Select(u => u.CompanyName).FirstOrDefault();

                    //var userI = pp.Select(d => d.ProviderId).FirstOrDefault();
                    //var ri = context.Users.Where(x => x.Id == userI).Select(u => u.Id).FirstOrDefault();
                    //var rn = context.Users.Where(x => x.Id == ri).Select(u => u.CompanyName).FirstOrDefault();

                    IngCostIP ingCostp = new IngCostIP();
                    ingCostp.ingCostId = ing.IngNotiPostId;
                    ingCostp.UnitCost = ing.UnitCost;
                    ingCostp.Data = "";
                    ingCostp.Providerid = ri;
                    ingCostp.Provname = rn;
                    ingCostp.PostId = or;

                    //ingCostp.ingCostId = pp.Select(ingCostId=> ingCostId.IngNotiPostId).FirstOrDefault()==0 ? 0: pp.Select(ingCostId => ingCostId.IngNotiPostId).FirstOrDefault();
                    //ingCostp.UnitCost = pp.Select(UnitCost => UnitCost.UnitCost).FirstOrDefault() == 0 ? 0 : pp.Select(UnitCost => UnitCost.UnitCost).FirstOrDefault();
                    //ingCostp.Data = "";
                    //ingCostp.Providerid = ri;
                    //ingCostp.Provname = rn;
                    //ingCostp.PostId = or;

                    postX.ingCost.Add(ingCostp);
                }

                for (int pIndex = 0; pIndex < providers.Count; pIndex++)
                {

                    if (!postX.ingCost.Any(x => x.Providerid == providers[pIndex].Providerid))
                    {

                        var userI = pp.Select(d => providers[pIndex].Providerid).FirstOrDefault();
                        var ri = context.Users.Where(x => x.Id == userI).Select(u => u.Id).FirstOrDefault();
                        var rn = context.Users.Where(x => x.Id == ri).Select(u => u.CompanyName).FirstOrDefault();

                        IngCostIP ingCostp = new IngCostIP();
                        ingCostp.ingCostId = 0;
                        ingCostp.UnitCost = 0;
                        ingCostp.Data = "";
                        ingCostp.Providerid = ri;
                        ingCostp.Provname = rn;
                        ingCostp.PostId = or;
                        postX.ingCost.Add(ingCostp);
                    }
                }

                posts.Add(postX);
            }

            //PostIP postX = new PostIP();
            //postX.PostId = p.Select(PostId => PostId.IngNotificationId).FirstOrDefault();
            //postX.IngName = p.Select(IngName => IngName.IngNotification.IngDish.Ingredient.Name).FirstOrDefault();
            //postX.Required = p.Select(Required => Required.IngNotification.TotalRequired).FirstOrDefault();
            //postX.MeasureUnit = t.IngNotification.IngDish.Ingredient.Unit.Name).FirstOrDefault();

            //foreach (var t in p)
            //    posts.Add(new PostIP
            //    {
            //        PostId = t.IngNotificationId,
            //        PostId = t.IngNotification.IngDish.Ingredient.Name,
            //        Required = t.IngNotification.TotalRequired,
            //        MeasureUnit = t.IngNotification.IngDish.Ingredient.Unit.Name,
            //        ingCosts = db.IngNotiPosts.Where(rx => t.IngNotiPostId == rx.IngNotiPostId).Select(srx => new IngCostIP
            //        {
            //            ingCostId = srx.IngNotiPostId,
            //            UnitCost = srx.UnitCost,
            //            Data = "",
            //            Providerid = ri,
            //            Provname = rn,
            //            PostId = t.IngNotificationId,
            //        }).ToList()

            //    });

            // var posts = db.IngNotiPosts.Include(ix=> ix.IngNotification.IngDish.Ingredient)
            //.Where(r => r.RestaurantId == restaurantId && intlastNoty.Contains(r.IngNotificationId))
            //.Select(s => new PostIP
            //{
            //   PostId = s.IngNotificationId,
            //   IngName = s.IngNotification.IngDish.Ingredient.Name,
            //   Required = s.IngNotification.TotalRequired,
            //   MeasureUnit = s.IngNotification.IngDish.Ingredient.Unit.Name,
            //   ingCosts = db.IngNotiPosts.Where(rx=> s.IngNotiPostId == rx.IngNotiPostId).Select(srx=> new IngCostIP {
            //       ingCostId = srx.IngNotificationId,
            //       UnitCost = srx.UnitCost,
            //       Data = "",
            //       Providerid = context.Users.Where(x => x.Id == s.ProviderId).Select(u => int.Parse(u.Id)).FirstOrDefault(),
            //       Provname = context.Users.Where(x => x.Id == s.ProviderId).Select(u => u.CompanyName).FirstOrDefault(),
            //       PostId = s.IngNotificationId
            //   }).ToList()

            //}).ToList();

            getPost.providers = providers;
            getPost.posts = posts;

            context.Dispose();

            if (getPost == null)
            {
                return NotFound();
            }

            return Ok(getPost);
        }
コード例 #7
0
 public void Dispose()
 {
     _context?.Dispose();
 }