public void ClearAllDeltaFromSummary(string publicID) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList list = contexto.eshShoppingLists.Where(sl => sl.publicID == publicID).FirstOrDefault(); ClearAllDeltaFromSummary(list, contexto); }
public string CrearShoppingList(string name, string description, string userName = null) { string publicID = Guid.NewGuid().ToString(); EveShoppingContext contexto = new EveShoppingContext(); int?userId = null; if (userName != null) { UserProfile up = contexto.UserProfiles.Where(p => p.UserName == userName).FirstOrDefault(); if (up == null) { throw new ApplicationException(Messages.err_usuarioNoExiste); } userId = up.UserId; } eshShoppingList sl = new eshShoppingList(); sl.name = name; sl.description = description; sl.publicID = publicID; sl.readOnlypublicID = Guid.NewGuid().ToString(); sl.dateCreation = System.DateTime.Now; sl.dateUpdate = System.DateTime.Now; sl.dateAccess = System.DateTime.Now; sl.tradeHubID = 30000142; sl.userID = userId; contexto.eshShoppingLists.Add(sl); contexto.SaveChanges(); return(publicID); }
public void SaveListInMyLists(string publicID, string userName) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList list = contexto.eshShoppingLists.Where(sl => sl.publicID == publicID).FirstOrDefault(); if (list == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } //si la shopping list ya tiene un propietario no lo cambiamos. if (list.userID.HasValue) { return; } UserProfile user = contexto.UserProfiles.Where(up => up.UserName == userName).FirstOrDefault(); if (user == null) { throw new ApplicationException(Messages.err_usuarioNoExiste); } foreach (var slf in list.eshShoppingListFittings) { if (slf.eshFitting != null && !slf.eshFitting.userID.HasValue) { slf.eshFitting.userID = user.UserId; } } list.userID = user.UserId; contexto.SaveChanges(); }
public void UpdateDeltaToSummary(string publicID, int itemID, int units, bool isSet = true) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList list = contexto.eshShoppingLists.Where(sl => sl.publicID == publicID).FirstOrDefault(); UpdateDeltaToSummary(publicID, itemID, units, isSet, contexto, list); }
public void CrearShoppingList(eshShoppingList lista) { lista.dateCreation = System.DateTime.Now; lista.dateUpdate = System.DateTime.Now; this.Contexto.eshShoppingLists.Add(lista); this.Contexto.SaveChanges(); }
public void DeleteItemFromShoppingList(string publicID, int itemID) { EveShoppingContext contexto = new EveShoppingContext(); RepositorioShoppingLists repo = new RepositorioShoppingLists(contexto); eshShoppingList list = repo.SelectShopingListPorPublicID(publicID); DeleteItemFromShoppingList(list.shoppingListID, itemID, contexto); }
public void DeleteShoppingList(string publicID, string userName) { EveShoppingContext contexto = new EveShoppingContext(); using (TransactionScope scope = new TransactionScope()) { eshShoppingList sl = contexto.eshShoppingLists.Where(s => s.publicID == publicID).FirstOrDefault(); if (sl == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } if (sl.userID.HasValue && userName == null) { throw new ApplicationException(Messages.err_notOwner); } UserProfile user = contexto.UserProfiles.Where(u => u.UserName == userName).FirstOrDefault(); if (sl.userID.HasValue && sl.userID.Value != user.UserId) { throw new ApplicationException(Messages.err_notOwner); } //passed the user right test, the shopping list can be deleted based on the owner. //At this moment we dont make any further test regarding if the list used or not, it is possible to delete only based on the ownership. //Delete the related static lists LogicaSnapshots logicaSnaps = new LogicaSnapshots(); List <eshSnapshot> listSnapshots = sl.eshSnapshots.ToList(); foreach (var snp in listSnapshots) { logicaSnaps.DeleteStaticShoppingList(snp, userName, contexto); } List <eshShoppingListFitting> listFittings = sl.eshShoppingListFittings.ToList(); foreach (var fit in listFittings) { this.DeleteFitFromShoppingLIST(sl.shoppingListID, fit.fittingID, contexto); } List <eshShoppingListInvType> listInvtTypes = sl.eshShoppingListInvTypes.ToList(); foreach (var it in listInvtTypes) { this.DeleteItemFromShoppingList(sl.shoppingListID, it.typeID, contexto); } ClearAllDeltaFromSummary(sl, contexto); contexto.eshShoppingLists.Remove(sl); contexto.SaveChanges(); scope.Complete(); } }
public string CrearShoppingList(eshShoppingList lista) { string publicID = Guid.NewGuid().ToString(); lista.publicID = publicID; EveShoppingContext contexto = new EveShoppingContext(); contexto.eshShoppingLists.Add(lista); contexto.SaveChanges(); return(publicID); }
public void ShoppingListUpdated(string publicId, EveShoppingContext context = null) { if (context == null) { context = new EveShoppingContext(); } eshShoppingList sl = context.eshShoppingLists.Where(s => s.publicID == publicId).FirstOrDefault(); sl.dateUpdate = System.DateTime.Now; context.SaveChanges(); }
public void ActualizarShoppingListHeader(string publicID, string slName, string slDescription) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList sl = null; sl = contexto.eshShoppingLists.Where(s => s.publicID == publicID).FirstOrDefault(); sl.name = slName; sl.description = slDescription; sl.dateUpdate = DateTime.Now; sl.dateAccess = DateTime.Now; contexto.SaveChanges(); }
public bool IsShoppingListFree(string publicID) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList list = contexto.eshShoppingLists.Where(sl => sl.publicID == publicID).FirstOrDefault(); if (list == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } return(!list.userID.HasValue); }
public void UpdateMarketItemToShoppingList(string publicID, int itemID, int units) { RepositorioShoppingLists repo = new RepositorioShoppingLists(); eshShoppingList list = repo.SelectShopingListPorPublicID(publicID); if (units < 1) { units = 1; } eshShoppingListInvType slit = repo.UpdateMarketItemEnShoppingList(list.shoppingListID, itemID, units); repo.ShoppingListUpdated(list.shoppingListID); }
public void UpdateAllDeltaToSummary(string publicId, IEnumerable <KeyValuePair <int, int> > deltas, bool isSet = true) { EveShoppingContext contexto = new EveShoppingContext(); using (contexto) { foreach (var item in deltas) { eshShoppingList list = contexto.eshShoppingLists.Where(sl => sl.publicID == publicId).FirstOrDefault(); UpdateDeltaToSummary(publicId, item.Key, item.Value, isSet, contexto, list); } contexto.SaveChanges(); } }
/// <summary> /// si el id no existe no se hace nada /// </summary> /// <param name="fittingID"></param> public void DeleteFitFromShoppingLIST(string publicID, int fittingID) { EveShoppingContext context = new EveShoppingContext(); eshShoppingList sl = context.eshShoppingLists.Where(s => s.publicID == publicID).FirstOrDefault(); if (sl == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } if (sl != null) { DeleteFitFromShoppingLIST(sl.shoppingListID, fittingID, context); } }
public string GetPublidIDPorPublidIDRead(string publicIDRead) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList list = contexto.eshShoppingLists.Where(s => s.readOnlypublicID == publicIDRead).FirstOrDefault(); if (list == null) { list = contexto.eshShoppingLists.Where(s => s.publicID == publicIDRead).FirstOrDefault(); } if (list == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } return(list.publicID); }
public int SaveAnalisedFit(string listPublicId, FittingAnalyzed fitAnalysed, string userName = null) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList lista = null; eshFitting fit = null; using (TransactionScope scope = new TransactionScope()) { fit = MountFittingFromFittingAnalysed(fitAnalysed); RepositorioShoppingLists repo = new RepositorioShoppingLists(contexto); if (!string.IsNullOrEmpty(listPublicId)) { lista = repo.SelectShopingListPorPublicID(listPublicId); eshShoppingListFitting relation = new eshShoppingListFitting(); fit.eshShoppingListFittings.Add(relation); relation.eshShoppingList = lista; relation.units = 1; repo.ShoppingListUpdated(lista.shoppingListID); } if (!string.IsNullOrEmpty(userName)) { UserProfile up = contexto.UserProfiles.Where(u => u.UserName == userName).FirstOrDefault(); if (up == null) { throw new ApplicationException(Messages.err_usuarioNoExiste); } fit.userID = up.UserId; } repo.CrearFitting(fit); scope.Complete(); } return(fit.fittingID); }
public bool IsShoppingListOwner(string publicID, string userName = null) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList list = contexto.eshShoppingLists.Where(sl => sl.publicID == publicID).FirstOrDefault(); if (!list.userID.HasValue) { return(true); } UserProfile user = contexto.UserProfiles.Where(u => u.UserName == userName).FirstOrDefault(); if (user == null) { return(false); } if (list.userID.Value == user.UserId) { return(true); } return(false); }
public void UseFitInList(string publicID, int fitID) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList sl = contexto.eshShoppingLists.Where(s => s.publicID == publicID).FirstOrDefault(); if (sl == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } if (contexto.eshShoppingListFittings.Where(slf => slf.shoppingListID == sl.shoppingListID && slf.fittingID == fitID).Count() > 0) { throw new ApplicationException(Messages.err_fittigAlreadyUsed); } eshShoppingListFitting slft = new eshShoppingListFitting(); slft.shoppingListID = sl.shoppingListID; slft.fittingID = fitID; slft.units = 1; contexto.eshShoppingListFittings.Add(slft); RepositorioShoppingLists repo = new RepositorioShoppingLists(); repo.ShoppingListUpdated(sl.shoppingListID, contexto); contexto.SaveChanges(); }
public EVFitting SelectFitSummary(string publicID, int fittingID, IImageResolver imageResolver) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList shlist = contexto.eshShoppingLists.Where(s => s.publicID == publicID).FirstOrDefault(); EVFitting fit = (from slf in contexto.eshShoppingListFittings join f in contexto.eshFittings on slf.fittingID equals f.fittingID join it in contexto.invTypes on f.shipTypeID equals it.typeID join p in contexto.eshPrices on new { tradeHubID = slf.eshShoppingList.tradeHubID, it.typeID } equals new { tradeHubID = p.solarSystemID, p.typeID } where slf.eshShoppingList.publicID == publicID && slf.fittingID == fittingID select new EVFitting { Description = f.description, ItemID = f.fittingID, Name = f.name, ShipID = f.shipTypeID.Value, ShipName = f.invType.typeName, ShipVolume = f.shipVolume, Units = slf.units, ShipPrice = p.avg, TotalPrice = p.avg * slf.units, Volume = f.shipVolume * slf.units, PublicID = f.publicID }).FirstOrDefault(); fit.ImageUrl32 = imageResolver.GetImageURL(fit.ShipID); //AddFittingHardwareToFittingSummary(imageResolver, contexto, fit); LogicaFittings logicafit = new LogicaFittings(); logicafit.AddFittingHardwaresToFitting(contexto, imageResolver, shlist.tradeHubID, fit); return(fit); }
internal void ClearAllDeltaFromSummary(eshShoppingList sl, EveShoppingContext contexto) { sl.eshShoppingListSummInvTypes.Clear(); contexto.SaveChanges(); }
public EVListSummary SelectListSummaryPorPublicID(string publicID, IImageResolver imageResolver, bool includeEmpty = true) { EveShoppingContext contexto = new EveShoppingContext(); eshShoppingList shoppingList = contexto.eshShoppingLists.Where(sl => sl.publicID == publicID).FirstOrDefault(); if (shoppingList == null) { return(null); } EVListSummary summary = new EVListSummary(); summary.Description = shoppingList.description; summary.Name = shoppingList.name; summary.PublicID = shoppingList.publicID; summary.ReadOnlyPublicID = shoppingList.readOnlypublicID; summary.ShoppingListID = shoppingList.shoppingListID; IEnumerable <EVFitting> fittings = this.SelectFitsInShoppingList(publicID, imageResolver); Dictionary <int, EVFittingHardware> diccHwd = new Dictionary <int, EVFittingHardware>(); //add ships foreach (var fit in fittings) { EVFittingHardware fw = null; if (diccHwd.ContainsKey(fit.ShipID)) { fw = diccHwd[fit.ShipID]; fw.Units += fit.Units; fw.Volume += fit.Units * fit.ShipVolume; fw.TotalPrice += fit.ShipPrice * fit.Units; } else { fw = new EVFittingHardware { Name = fit.ShipName, ItemID = fit.ShipID, Units = fit.Units, Volume = fit.ShipVolume * fit.Units, UnitVolume = fit.ShipVolume, TotalPrice = fit.ShipPrice * fit.Units, UnitPrice = fit.ShipPrice, ImageUrl32 = imageResolver != null?imageResolver.GetImageURL(fit.ShipID) : string.Empty }; diccHwd.Add(fw.ItemID, fw); } } //add fitted hardware foreach (var fit in fittings) { foreach (var fw in fit.FittingHardwares) { if (diccHwd.ContainsKey(fw.ItemID)) { EVFittingHardware fwd = diccHwd[fw.ItemID]; fwd.Units += fw.Units * fit.Units; fwd.Volume += fw.Volume * fit.Units; fwd.TotalPrice += fw.TotalPrice * fit.Units; //fw.UnitPrice = fw.TotalPrice; } else { fw.Units *= fit.Units; fw.Volume *= fit.Units; fw.TotalPrice *= fit.Units; if (fit.Units != 0) { fw.UnitVolume = fw.Volume / fw.Units; fw.UnitPrice = fw.TotalPrice / fw.Units; } else { fw.UnitVolume = fw.Volume; fw.UnitPrice = fw.TotalPrice; } diccHwd.Add(fw.ItemID, fw); } } } //add market items IEnumerable <MarketItem> marketItems = this.SelectMarketItemsEnShoppingList(publicID, imageResolver); foreach (var mi in marketItems) { if (diccHwd.ContainsKey(mi.ItemID)) { EVFittingHardware fwd = diccHwd[mi.ItemID]; fwd.Units += mi.Units; fwd.Volume += mi.Volume; fwd.TotalPrice += mi.TotalPrice; } else { EVFittingHardware fwd = new EVFittingHardware(); fwd.ImageUrl32 = mi.ImageUrl32; fwd.ItemID = mi.ItemID; fwd.Name = mi.Name; fwd.TotalPrice = mi.TotalPrice; fwd.UnitPrice = mi.UnitPrice; fwd.Units = mi.Units; fwd.Volume = mi.Volume; fwd.UnitVolume = mi.Volume / mi.Units; diccHwd.Add(fwd.ItemID, fwd); } } // Update summary changes IEnumerable <eshShoppingListSummInvType> summInvs = contexto.eshShoppingListSummInvTypes.Where(sls => sls.shoppingListID == summary.ShoppingListID); foreach (var summInv in summInvs) { if (!diccHwd.ContainsKey(summInv.typeID)) { //if the item is not in the items dictionary, it doesnt exist anymore in the list, so we delete the delta contexto.eshShoppingListSummInvTypes.Remove(summInv); } else { EVFittingHardware fwd = diccHwd[summInv.typeID]; if ((summInv.delta < 0) && (summInv.delta * -1 > fwd.Units)) { summInv.delta = (short)(fwd.Units * -1); } fwd.TotalPrice += summInv.delta * fwd.UnitPrice; fwd.Volume += (fwd.Volume / fwd.Units) * summInv.delta; fwd.Units += summInv.delta; fwd.Delta = summInv.delta; } } foreach (var item in diccHwd.Values) { if (includeEmpty || (item.Units > 0)) { summary.Items.Add(item); summary.TotalPrice += item.TotalPrice; summary.TotalVolume += item.Volume; } } contexto.SaveChanges(); return(summary); }
private void UpdateDeltaToSummary(string publicID, int itemID, int units, bool isSet, EveShoppingContext contexto, eshShoppingList list) { ChangesSummaryItem changes = new ChangesSummaryItem(); if (list == null) { throw new ApplicationException(Messages.err_shoppingLisNoExiste); } eshShoppingListSummInvType summEntry = contexto.eshShoppingListSummInvTypes.Where(si => si.shoppingListID == list.shoppingListID && si.typeID == itemID).FirstOrDefault(); //check if we are setting it or adding it to the value of the current delta if (!isSet) { if (summEntry != null) { units += summEntry.delta; } } if (units != 0) { if (summEntry == null) { summEntry = new eshShoppingListSummInvType(); summEntry.typeID = itemID; summEntry.shoppingListID = list.shoppingListID; contexto.eshShoppingListSummInvTypes.Add(summEntry); } summEntry.delta = units; } else { if (summEntry != null) { contexto.eshShoppingListSummInvTypes.Remove(summEntry); } } list.dateUpdate = DateTime.Now; list.dateAccess = DateTime.Now; contexto.SaveChanges(); }