public bool SaveAll() { //SaveChanges returneaza numarul de randuri afectate /* => SaveAll functioneaza daca nr rand afectate este > 0*/ return(_ctx.SaveChanges() > 0); }
public async Task SeedAsync() //daca o operatie devine async o putem adauga la nume { _ctx.Database.EnsureCreated(); //vf daca baza de date exista //dupa ce a fost creata db ne uitam dupa store user //user mana ne permite sa gasim dupa email StoreUser user = await _userManager.FindByEmailAsync("*****@*****.**"); //fiindca a async trebuie sa folosim await if (user == null) // daca userul nu exista il creeam { user = new StoreUser() { FirstName = "Andreea", LastName = "Poclitaru", Email = "*****@*****.**", UserName = "******" }; var result = await _userManager.CreateAsync(user, "par0laANDREEA!"); //dupa ce avem datele creeam user //prin default ne cere upper, lower ,numer if (result != IdentityResult.Success) //daca nu a creeat noul user { throw new InvalidOperationException("Could not create new user in seeder"); } } if (!_ctx.Products.Any()) //returneaza adev daca exista Products in DB = select count(Products);if count>0 return true { /* Daca NU(!!) exista Products in DB trebuie sa cream sample data * Prima oara luam date din fisierul art.json: */ var filepath = Path.Combine(_hosting.ContentRootPath, "Data/art.json");//directorul pt root a proiectului = _hosting.ContentRootPath var json = File.ReadAllText(filepath); /*Luam lista produselor folosind o librarie*/ var products = JsonConvert.DeserializeObject <IEnumerable <Product> >(json); // DeserializeObject<tipul in care vrem sa serializam> si stiu ca art.json este un IEnumerable de entitate Product //linia de sus ne returneaza o lista de produse _ctx.Products.AddRange(products);//addRange=fiindca este o colectie //returneaza produsele //DAR daca am vrea sa adaugam orders : var order = _ctx.Orders.Where(o => o.Id == 1).FirstOrDefault(); if (order != null) { order.User = user; //folosim user: va update comanda sa fie a user-ului /*setam user ca prop a Order prin context*/ order.Items = new List <OrderItem>() // adaugam in order items { new OrderItem() //folosim o initializare sa cream un nou order item { Product = products.First(), //iau primul produs Quantity = 5, UnitPrice = products.First().Price } }; } _ctx.SaveChanges();//produsele sunt adaugate in database } }