public void GetIdFromEmptyList() { var idList = new List <IId>(); var idSetter = new IdSetter(idList); Assert.AreEqual(idSetter.getId(), 0); }
public T Get <T>(IdSetter idSetter, string id) where T : class, new() { Row row; if (_rows.TryGetValue(id, out row) && row.Data != null) { T obj = new T(); idSetter(obj, id); if (obj is IDictionary <string, object> ) { var dict = (obj as IDictionary <string, object>); foreach (var field in row.Data) { var data = field.Value; if (data != null) { if (dict.ContainsKey(field.Key)) { dict[field.Key] = DeserializeValue(data); } else { dict.Add(field.Key, DeserializeValue(data)); } } } } else { foreach (var field in obj.GetType().GetFields()) { if (field.GetCustomAttributes(typeof(IgnoreAttribute), true).Length == 0) { var data = row.Data[field.Name]; if (data != null) { field.SetValue(obj, DeserializeValue(data, field.FieldType)); } } } foreach (var prop in obj.GetType().GetProperties()) { // we are only interested in read/writable fields if (prop.GetCustomAttributes(typeof(IgnoreAttribute), true).Length == 0 && prop.CanRead && prop.CanWrite) { var data = row.Data[prop.Name]; if (data != null) { prop.SetValue(obj, DeserializeValue(data, prop.PropertyType), null); } } } } return(obj); } return(default(T)); }
public IEnumerable <T> GetAll <T>(IdSetter idSetter) where T : class, new() { foreach (var kvp in _rows) { yield return(Get <T>(idSetter, kvp.Key)); } }
private void AddToList(ref List <IId> idList) { var player = new Player(); var idSetter = new IdSetter(idList); player.Id = idSetter.getId(); idList.Add(player); }
public void GetIdAfterAdding() { var idList = this.CreateIdList(1); var idSetter = new IdSetter(idList); Assert.AreEqual(idSetter.getId(), 1); }
public void GetIdAfterRemovingLast() { var idList = this.CreateIdList(20); idList.RemoveAt(19); var idSetter = new IdSetter(idList); Assert.AreEqual(idSetter.getId(), 19); }
public void GetIdAfterRemovingInTheMiddleOfList() { var idList = this.CreateIdList(30); idList.RemoveAt(15); var TestIdSetter = new IdSetter(idList); Assert.AreEqual(TestIdSetter.getId(), 15); }
public void GetIdAfterRemovingFirst() { var idList = this.CreateIdList(30); idList.RemoveAt(0); var TestIdSetter = new IdSetter(idList); Assert.AreEqual(TestIdSetter.getId(), 0); }
public void Add(Team newPlayer) { var idControler = new IdSetter(this.Teams.OfType <IId>().ToList <IId>()); int newId = idControler.getId(); newPlayer.Id = newId; Console.WriteLine("NEW ID IS : {0}", newId); this.Teams.Add(newPlayer); }
private static string GetObjectId(object update, IdGetter idGetter, IdSetter idSetter) { string id = idGetter(update); if (idSetter != null && string.IsNullOrEmpty(id)) { id = GenerateId(); idSetter(update, id); } return(id); }
public void GetIdAfterPlacingSomeElementsInTheMiddle() { var idList = this.CreateIdList(30); idList.RemoveAt(14); idList.RemoveAt(14); idList.RemoveAt(14); this.AddToList(ref idList); this.AddToList(ref idList); var TestIdSetter = new IdSetter(idList); Assert.AreEqual(TestIdSetter.getId(), 16); }
public ActionResult AddToShoppingCart(int ID) { AmdCPU amdCPU = db.AmdCPUs.Find(ID); ShoppingCart basket = new ShoppingCart(); basket.AddItem(new Parts { Name = ("AMD " + (amdCPU.Brand) + " " + (amdCPU.Model)), Price = (amdCPU.Price), ID = IdSetter.setId() }); basket.DisplayFor(IdSetter.setId()); IdSetter.incrementId(); //seed++; return(RedirectToAction("IndexAmdCpu")); }
public ActionResult AddToShoppingCart(int ID) { PowerSupply psu = db.PowerSupplies.Find(ID); ShoppingCart basket = new ShoppingCart(); basket.AddItem(new Parts { Name = ((psu.Brand) + " " + (psu.Rating) + " " + (psu.Watt)), Price = (psu.Price), ID = IdSetter.setId() }); basket.DisplayFor(IdSetter.setId()); IdSetter.incrementId(); //seed++; return(RedirectToAction("IndexPSU")); }
public ActionResult AddToShoppingCart(int ID) { Memory ram = db.Memories.Find(ID); ShoppingCart basket = new ShoppingCart(); basket.AddItem(new Parts { Name = ((ram.Brand) + " " + (ram.DDR) + " " + (ram.Capacity) + " " + (ram.Speed)), Price = (ram.Price), ID = IdSetter.setId() }); basket.DisplayFor(IdSetter.setId()); IdSetter.incrementId(); //seed++; return(RedirectToAction("IndexMemory")); }
public ActionResult AddToShoppingCart(int ID) { IntelCPU intelCPU = db.IntelCPUs.Find(ID); ShoppingCart basket = new ShoppingCart(); basket.AddItem(new Parts { Name = ("Intel Core " + (intelCPU.Core) + " " + (intelCPU.Model)), Price = (intelCPU.Price), ID = IdSetter.setId() }); basket.DisplayFor(IdSetter.setId()); IdSetter.incrementId(); //seed++; return(RedirectToAction("Index")); }
public ActionResult AddToShoppingCart(int ID) { Cooler cooler = db.Coolers.Find(ID); ShoppingCart basket = new ShoppingCart(); basket.AddItem(new Parts { Name = ((cooler.Brand) + " " + (cooler.Model) + " " + (cooler.Rad)), Price = (cooler.Price), ID = IdSetter.setId() }); basket.DisplayFor(IdSetter.setId()); IdSetter.incrementId(); //seed++; return(RedirectToAction("IndexCooler")); }
public ActionResult AddToShoppingCart(int ID) { NvidiaGPU nvidiaGPU = db.NvidiaGPUs.Find(ID); ShoppingCart basket = new ShoppingCart(); basket.AddItem(new Parts { Name = ("NVIDIA GeForce GTX " + (nvidiaGPU.Model) + " " + (nvidiaGPU.Memory)), Price = (nvidiaGPU.Price), ID = IdSetter.setId() }); basket.DisplayFor(IdSetter.setId()); IdSetter.incrementId(); //seed++; return(RedirectToAction("IndexNvidia")); }
public bool Insert(IdGetter idGetter, IdSetter idSetter, object insert) { string id = GetObjectId(insert, idGetter, idSetter); if (string.IsNullOrEmpty(id)) { throw new ArgumentException("Object to be inserted must have a non null/empty Id"); } Row row; if (_rows.TryGetValue(id, out row)) { // can't insert something unless it doesn't exist // or has just been deleted if (row.State != RowState.Deleting) { return(false); } } else { row = new Row(); _rows.Add(id, row); } row.State = RowState.Inserting; var change = new JArray(); change.Add("I"); change.Add(Id); change.Add(id); JObject data = new JObject(); if (insert is IDictionary <string, object> ) { var dict = (insert as IDictionary <string, object>); foreach (var field in dict) { object fieldValue = field.Value; if (fieldValue != null) { data[field.Key] = SerializeValue(fieldValue); } } } else { foreach (var field in insert.GetType().GetFields()) { if (field.GetCustomAttributes(typeof(IgnoreAttribute), true).Length == 0) { object fieldValue = field.GetValue(insert); if (fieldValue != null) { data[field.Name] = SerializeValue(fieldValue); } } } foreach (var prop in insert.GetType().GetProperties()) { if (prop.GetCustomAttributes(typeof(IgnoreAttribute), true).Length == 0) { object propValue = prop.GetValue(insert, null); // we are only interested in read/writable fields if (prop.CanRead && prop.CanWrite && propValue != null) { data[prop.Name] = SerializeValue(propValue); } } } } change.Add(data); _pendingChanges.Add(change); return(true); }