Exemple #1
0
        public static IList <SellerHistoryData> ToJavaScriptSellerHistory(IList <StoredEvent> storedEvents)
        {
            HistoryData = new List <SellerHistoryData>();
            SellerHistoryDeserializer(storedEvents);

            var sorted = HistoryData.OrderBy(c => c.When);
            var list   = new List <SellerHistoryData>();
            var last   = new SellerHistoryData();

            foreach (var change in sorted)
            {
                var jsSlot = new SellerHistoryData
                {
                    SellerId = change.SellerId == 0 || change.SellerId == last.SellerId
                        ? 0 : change.SellerId,
                    Name = string.IsNullOrWhiteSpace(change.Name) || change.Name == last.Name
                        ? "" : change.Name,
                    Email = string.IsNullOrWhiteSpace(change.Email) || change.Email == last.Email
                        ? "" : change.Email,
                    PhoneNumber = string.IsNullOrWhiteSpace(change.PhoneNumber) || change.PhoneNumber == last.PhoneNumber
                        ? "" : change.PhoneNumber,
                    Action = string.IsNullOrWhiteSpace(change.Action) ? "" : change.Action,
                    When   = change.When,
                    Who    = change.Who
                };

                list.Add(jsSlot);
                last = change;
            }
            return(list);
        }
Exemple #2
0
        private static void SellerHistoryDeserializer(IList <StoredEvent> storedEvents)
        {
            foreach (var e in storedEvents)
            {
                var     slot = new SellerHistoryData();
                dynamic values;

                switch (e.MessageType)
                {
                case "SellerCreatedEvent":
                    values           = JsonConvert.DeserializeObject <dynamic>(e.Data);
                    slot.SellerId    = values["SellerId"];
                    slot.Name        = values["Name"];
                    slot.Email       = values["Email"];
                    slot.PhoneNumber = values["PhoneNumber"];
                    slot.Action      = "Registered";
                    slot.When        = values["Timestamp"];
                    slot.Who         = e.User;
                    break;

                case "SellerUpdatedEvent":
                    values           = JsonConvert.DeserializeObject <dynamic>(e.Data);
                    slot.SellerId    = values["SellerId"];
                    slot.Name        = values["Name"];
                    slot.Email       = values["Email"];
                    slot.PhoneNumber = values["PhoneNumber"];
                    slot.Action      = "Registered";
                    slot.When        = values["Timestamp"];
                    slot.Who         = e.User;
                    break;

                case "SellerRemovedEvent":
                    values        = JsonConvert.DeserializeObject <dynamic>(e.Data);
                    slot.Action   = "Removed";
                    slot.When     = values["Timestamp"];
                    slot.SellerId = values["SellerId"];
                    slot.Who      = e.User;
                    break;
                }
                HistoryData.Add(slot);
            }
        }