public async override void RefreshView() { Heading = string.Format("Detailed CGT Report for {0}/{1} Financial Year", _Parameter.FinancialYear - 1, _Parameter.FinancialYear); DetailedUnrealisedGainsResponse response; if (_Parameter.Stock.Id == Guid.Empty) { response = await _Parameter.RestClient.Portfolio.GetDetailedCapitalGains(_Parameter.Date); } else { response = await _Parameter.RestClient.Holdings.GetDetailedCapitalGains(_Parameter.Stock.Id, _Parameter.Date); } if (response == null) { return; } Parcels.Clear(); foreach (var item in response.UnrealisedGains.OrderBy(x => x.Stock.Name).ThenBy(x => x.AquisitionDate)) { Parcels.Add(new ParcelCostBaseViewItem(item)); } OnPropertyChanged(""); }
/// <summary> /// Отменяет все внесенные изменения /// </summary> protected void UndoChanges() { if (!SaveUndoCommandCanExecute) { return; } //Помечаем к удалению записи, которые больше не связаны с земельным участком DeleteDetailRecordTogetherRelationship(); //Удаляем из кэша участков добавленные в данном сеансе редактирования var addParcel = ContextDb.ChangeTracker.Entries <Parcelle>().Where(p => p.State == EntityState.Added); foreach (var del in addParcel) { Parcels.Remove(del.Entity); } //Отменяем все изменения в БД ContextDb.DiscardAllChanges(); //Возвращаем из кэша удаленные земельные участки foreach (var del in ParcelsDelete) { Parcels.Add(del); } ParcelsDelete.Clear(); //Уведомляем об изменении свойств RaisePropertyChanged(nameof(Parcels)); RaisePropertyChanged(nameof(ParcelsViewSource)); }
public void AddParcel(Parcel parcel) { if (parcel is null) { throw new DomainValidationException($"Parameter {nameof(parcel)} cannot be null"); } Parcels.Add(parcel); SetUpdateDate(); }
public bool DivideParcel(UGUI requestingAgent, int start_x, int start_y, int end_x, int end_y) { ParcelInfo pInfo; if (!Parcels.TryGetValue(new Vector3(start_x, start_y, 0), out pInfo)) { return(false); } ParcelInfo.ParcelDataLandBitmap bmap = pInfo.LandBitmap; if (!bmap[start_x, end_y - 1] || !bmap[end_x - 1, start_x] || !bmap[end_x - 1, end_y - 1]) { /* not dividable */ return(false); } start_x &= (~3); start_y &= (~3); end_x &= (~3); end_y &= (~3); for (int py = start_y; py < end_y; py += 4) { for (int px = start_x; px < end_x; px += 4) { if (!bmap[px, py]) { return(false); } } } if (!CanDivideJoinParcel(requestingAgent, pInfo)) { return(false); } var newParcel = new ParcelInfo(pInfo, true); newParcel.ID = UUID.Random; Parcels.Add(newParcel); ParcelInfo.ParcelDataLandBitmap newBmap = newParcel.LandBitmap; for (int py = start_y; py < end_y; ++py) { for (int px = start_x; px < end_x; ++px) { newBmap[px, py] = true; bmap[px, py] = false; } } TriggerParcelUpdate(pInfo); TriggerParcelUpdate(newParcel); return(true); }
/// <summary> /// Добавляет новый земельный участок к БД, присваивая ему новый кадастровый номер /// </summary> /// <param name="newParcel"></param> public void AddNewParcelInDb(Parcelle newParcel) { using (var context = ContextFactory.Create()) { context.CadastraleSecteurs_v.Load(); var cadSect = context.CadastraleSecteurs_v.Local; newParcel.CadSecteurNumero = cadSect.Where(s => s.Shape.Intersects(newParcel.Shape)).First().Numero; newParcel.ParcelleSurCadSecteurNumero = (Parcels.Where(p => p.CadSecteurNumero == newParcel.CadSecteurNumero) .Max(p => p.ParcelleSurCadSecteurNumero) ?? 0) + 1; newParcel.NUP = string.Format("{0}-{1:D4}", newParcel.CadSecteurNumero, newParcel.ParcelleSurCadSecteurNumero); ContextDb.JuridiqueObjets.Attach(newParcel); ContextDb.Entry(newParcel).State = EntityState.Added; Parcels.Add(newParcel); //Уведомляем об изменении свойств RaisePropertyChanged(nameof(ParcelsViewSource)); RaisePropertyChanged(nameof(Parcels)); } }
public void AddParcelToOrder(Parcel parcel) { Parcels.Add(parcel); }
public ParcelOrder(Parcel parcel, bool speedyShipping = false) { Parcels.Add(parcel); SetCost(); SetSpeedyShipping(speedyShipping); }
public bool ClaimParcel(UGUI requestingAgent, int start_x, int start_y, int end_x, int end_y, int soldforprice) { ParcelInfo pInfo; if (!Parcels.TryGetValue(new Vector3(start_x, start_y, 0), out pInfo)) { return(false); } ParcelInfo.ParcelDataLandBitmap bmap = pInfo.LandBitmap; if (!bmap[start_x, end_y - 1] || !bmap[end_x - 1, start_x] || !bmap[end_x - 1, end_y - 1]) { /* not dividable */ return(false); } start_x &= (~3); start_y &= (~3); end_x &= (~3); end_y &= (~3); for (int py = start_y; py < end_y; py += 4) { for (int px = start_x; px < end_x; px += 4) { if (!bmap[px, py]) { return(false); } } } if (!pInfo.Owner.EqualsGrid(UGUI.Unknown)) { return(false); } var newParcel = new ParcelInfo(pInfo, true); newParcel.ID = UUID.Random; newParcel.Owner = requestingAgent; newParcel.Group = UGI.Unknown; newParcel.GroupOwned = false; newParcel.ClaimDate = Date.Now; newParcel.ClaimPrice = soldforprice; newParcel.SalePrice = 0; newParcel.AuthBuyer = UGUI.Unknown; newParcel.Flags &= ~(ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects | ParcelFlags.ShowDirectory); Parcels.Add(newParcel); ParcelInfo.ParcelDataLandBitmap newBmap = newParcel.LandBitmap; for (int py = start_y; py < end_y; ++py) { for (int px = start_x; px < end_x; ++px) { newBmap[px, py] = true; bmap[px, py] = false; } } TriggerParcelUpdate(pInfo); TriggerParcelUpdate(newParcel); return(true); }