public InventoryDialogService(IUserDataStorage storage, IInputParserService parser, IResultCache resultCache, IInventoryEmailService emailService)
 {
     _services = new Services
     {
         Storage      = storage,
         Parser       = parser,
         ResultCache  = resultCache,
         EmailService = emailService
     };
 }
        private static ProcessingResult SubtractMaterial(IUserDataStorage storage, string userId, Entry entry)
        {
            try
            {
                var entries           = storage.ReadAllEntries(userId);
                var dataUnitOfMeasure = entry.UnitOfMeasure.ToData();
                var dbEntry           = entries.FirstOrDefault(e =>
                                                               e.Name == entry.Name && e.UnitOfMeasure == dataUnitOfMeasure);

                if (dbEntry is null)
                {
                    return(new EntryNotFoundInDatabaseError(entry.Name, entry.UnitOfMeasure));
                }

                var updateValue = dbEntry.Quantity - entry.Quantity;

                if (updateValue < 0)
                {
                    return(new NotEnoughEntryToDeleteError(entry.Name, entry.Quantity, dbEntry.Quantity));
                }

                if (updateValue == 0)
                {
                    storage.DeleteEntry(dbEntry.Id);
                }
                else
                {
                    storage.UpdateEntry(dbEntry.Id, dbEntry.Quantity - entry.Quantity);
                }

                return(new ProcessingResult(ProcessingResultType.Deleted, entry));
            }
            catch (Exception e)
            {
                return(new ProcessingResult(e));
            }
        }
        private static ProcessingResult AddMaterial(IUserDataStorage storage, string userId, Entry entry)
        {
            try
            {
                var entries = storage.ReadAllEntries(userId);
                var dbEntry = entries.FirstOrDefault(e =>
                                                     e.Name == entry.Name && e.UnitOfMeasure == entry.UnitOfMeasure.ToData());

                if (dbEntry is null)
                {
                    storage.CreateEntry(userId, entry.Name, entry.Quantity, entry.UnitOfMeasure.ToData());
                }
                else
                {
                    storage.UpdateEntry(dbEntry.Id, dbEntry.Quantity + entry.Quantity);
                }

                return(new ProcessingResult(ProcessingResultType.Added, entry));
            }
            catch (Exception e)
            {
                return(new ProcessingResult(e));
            }
        }
Example #4
0
 public UserStore(IUserDataStorage storage)
 {
     this.userDataStorage = storage;
 }
 // automatically passed by IoC container
 public MyController(IUserDataStorage <MyObject> objectData)
 {
 }
Example #6
0
 public UserService(IUserDataStorage dataStorage)
 {
     _dataStorage = dataStorage;
 }