public ActionResult Uebersicht(long kontonummer, string passwort) { Kunde kunde; List <Umsatz> umsaetze = new List <Umsatz>(); Dictionary <Kunde, List <Umsatz> > data = new Dictionary <Kunde, List <Umsatz> >(); using (SHA384 sha = SHA384Managed.Create()) using (DeltaContext db = new DeltaContext()) { byte[] b = sha.ComputeHash(Encoding.UTF8.GetBytes(passwort)); string p = BitConverter.ToString(b).Replace("-", string.Empty).ToLower(); kunde = db.Kunden.FirstOrDefault <Kunde>(k => k.Konto.Kontonummer == kontonummer && (k.PIN == p || k.Passwort == p)) ?? new Kunde(); kunde.Konto = db.Konten.FirstOrDefault <Konto>(k => k.Kontonummer == kontonummer && k.Kunde.KundeId == kunde.KundeId); umsaetze.AddRange((from u in db.Umsaetze where u.Kunde.KundeId == kunde.KundeId orderby u.Wertstellung descending select u) ?? new List <Umsatz>().AsQueryable <Umsatz>()); data.Add(kunde, umsaetze); } return(View(data)); }
protected override RequestHandler DispatchHandler() { // TODO: Remove the following if to use Delta framework if (RequestUri.Segments.Length > 0) { int length = RequestUri.Segments.Length; string segment = RequestUri.Segments[length - 1]; string decoded = HttpUtility.UrlDecode(segment); if (decoded == "$delta") { return(new DeltaLinkHandler(this)); } else if (decoded == ServiceConstants.ServicePath_Async) { return(new StatusMonitorRequestHandler(this)); } } if (this.QueryContext.DeltaToken != null) { DeltaSnapshot deltaSnapshot = DeltaContext.GetDeltaQueryByDeltaToken(this.QueryContext.DeltaToken); return(new DeltaHandler(this, deltaSnapshot, this.QueryContext.DeltaToken)); } if (this.QueryContext.QueryPath.FirstSegment == null) { // ServiceDocument request return(new ServiceDocumentHandler(this)); } if (this.QueryContext.QueryPath.FirstSegment is MetadataSegment) { // $metadata request return(new MetadataDocumentHandler(this)); } if (this.QueryContext.QueryPath.LastSegment is OperationSegment || this.QueryContext.QueryPath.LastSegment is OperationImportSegment) { return(new OperationHandler(this, HttpMethod.GET)); } if (this.QueryContext.QueryPath.LastSegment is ValueSegment && this.QueryContext.Target.TypeKind == EdmTypeKind.Primitive) { var primitive = this.QueryContext.Target.Type as IEdmPrimitiveType; if (primitive != null && primitive.PrimitiveKind == EdmPrimitiveTypeKind.Stream) { return(new MediaStreamHandler(this, this.HttpMethod)); } } return(null); }
public override void Process(IODataRequestMessage requestMessage, IODataResponseMessage responseMessage) { // TODO: we will need to add server-driven paging for delta link object queryResults = this.QueryContext.ResolveQuery(this.DataSource); using (var messageWriter = this.CreateMessageWriter(responseMessage)) { IEdmNavigationSource navigationSource = this.QueryContext.Target.NavigationSource; IEnumerable iEnumerableResults = queryResults as IEnumerable; if (this.QueryContext.Target.NavigationSource != null && this.QueryContext.Target.TypeKind == EdmTypeKind.Collection) { IEdmEntitySetBase entitySet = navigationSource as IEdmEntitySetBase; IEdmEntityType entityType = this.QueryContext.Target.ElementType as IEdmEntityType; if (entitySet == null || entityType == null) { throw new InvalidOperationException("Invalid target when query feed."); } GenerateDeltaItemsFromFeed(iEnumerableResults, entitySet, ODataVersion.V4, this.QueryContext.QuerySelectExpandClause); Uri newDeltaLink = null; if (this.PreferenceContext.TrackingChanges) { var newDeltaToken = DeltaContext.GenerateDeltaToken(this.QueryContext.QueryUri, iEnumerableResults, entitySet, this.QueryContext.QuerySelectExpandClause); newDeltaLink = new Uri(string.Format("{0}?{1}={2}", this.ServiceRootUri, ServiceConstants.QueryOption_Delta, newDeltaToken)); responseMessage.AddPreferenceApplied(ServiceConstants.Preference_TrackChanging); } ODataDeltaWriter resultWriter = messageWriter.CreateODataDeltaWriter(entitySet, entityType); ResponseWriter.WriteDeltaFeed(resultWriter, this.DeltaItems, this.QueryContext.CountOption, newDeltaLink); resultWriter.Flush(); } else { throw Utility.BuildException(HttpStatusCode.Gone); } } }
private void Adjust(IAdjustableItem item, double error, double input, DeltaContext context) { var pars = GetCurrentParameters(item); double delta = pars.StepSize * error * input; if (pars.Momentum != 0.0) { if (context.Delta == null) { context.Delta = delta; } else { context.Delta = delta = (pars.Momentum * context.Delta.Value) + ((1.0 - pars.Momentum) * delta); } } item.Adjustment += delta; }