Пример #1
0
        public void GetIdFromEmptyList()
        {
            var idList   = new List <IId>();
            var idSetter = new IdSetter(idList);

            Assert.AreEqual(idSetter.getId(), 0);
        }
Пример #2
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));
        }
Пример #3
0
 public IEnumerable <T> GetAll <T>(IdSetter idSetter)
     where T : class, new()
 {
     foreach (var kvp in _rows)
     {
         yield return(Get <T>(idSetter, kvp.Key));
     }
 }
Пример #4
0
        private void AddToList(ref List <IId> idList)
        {
            var player   = new Player();
            var idSetter = new IdSetter(idList);

            player.Id = idSetter.getId();
            idList.Add(player);
        }
Пример #5
0
        public void GetIdAfterAdding()
        {
            var idList = this.CreateIdList(1);

            var idSetter = new IdSetter(idList);

            Assert.AreEqual(idSetter.getId(), 1);
        }
Пример #6
0
        public void GetIdAfterRemovingLast()
        {
            var idList = this.CreateIdList(20);

            idList.RemoveAt(19);

            var idSetter = new IdSetter(idList);

            Assert.AreEqual(idSetter.getId(), 19);
        }
Пример #7
0
        public void GetIdAfterRemovingInTheMiddleOfList()
        {
            var idList = this.CreateIdList(30);

            idList.RemoveAt(15);

            var TestIdSetter = new IdSetter(idList);

            Assert.AreEqual(TestIdSetter.getId(), 15);
        }
Пример #8
0
        public void GetIdAfterRemovingFirst()
        {
            var idList = this.CreateIdList(30);

            idList.RemoveAt(0);

            var TestIdSetter = new IdSetter(idList);

            Assert.AreEqual(TestIdSetter.getId(), 0);
        }
Пример #9
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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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"));
        }
Пример #13
0
        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"));
        }
Пример #17
0
        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"));
        }
Пример #18
0
        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);
        }