2017-10-10 5 views
1

J'ai créé une 'API WEB' en utilisant 'MySQL'. En ce moment je passe un serial number et un date time dans l'URL de l'API et j'obtiens le résultat attendu. Maintenant, je veux faire est que quand jamais une demande est envoyée. Tous les enregistrements sont affichés dans 10 minutes de timespan. c'est-à-dire que si l'heure envoyée est 10/10/2017T3:15:00 alors les données montrées seraient +5 et -5 minutes, c'est-à-dire entre 3:10:00 et 3:20:00 en supposant que la date devrait être la même.Soustraction de temps LINQ dans l'API web

Pour soustraire la méthode time.Subtract(...) temps peut être utilisé mais je ne sais vraiment pas comment soustraire et ajouter l'heure et ensuite obtenir le résultat.

Mon code de contrôleur ressemble

public HttpResponseMessage GetByMsn(string msn, DateTime dt) 
    { 
     try 
     { 
      return Request.CreateResponse(HttpStatusCode.Found, medEntitites.tj_xhqd.Where(m=>(m.zdjh == msn)).Where(m=> (m.sjsj >= dt)).Select(m=> new { m.zdjh , m.sjsj, m.xhqd }).Distinct()); 
     } 
     catch (Exception ex) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 
     } 
    } 

Remarque

L'addition et la soustraction du temps dépend du temps de la date d'envoi dans l'URL

Toute aide serait très appréciée.

Répondre

1

Si 5 min sont toujours avant et après la date fournie, utilisez AddMinutes pour ajouter/supprimer. Quelque chose comme ceci:

public HttpResponseMessage GetByMsn(string msn, DateTime dt) 
{ 
    try 
    {  
     var before = dt.AddMinutes(-5); 
     var after = dt.AddMinutes(5); 

     var result = medEntitites.tj_xhqd 
     .Where(m => 
      m.zdjh == msn && 
      m.sjsj >= before && 
      m.sjsj <= after) 
     .Select(m=> new { m.zdjh , m.sjsj, m.xhqd }).Distinct()); 

     return Request.CreateResponse(HttpStatusCode.Found, result); 
    } 
    catch (Exception ex) 
    { 
     return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 
    } 
} 

Remarque: Je ne voudrais pas coder les 5 minutes là-bas sur une vraie application cependant. Habituellement, cette valeur proviendrait d'une sorte de configuration de votre application. Si vous codez la valeur comme cela et que demain les exigences changent de 5 à 10 minutes, vous devez compiler et redéployer votre application, ce qui est nul. Alors garde cela en tête.

+0

Cela fonctionne comme un charme. et oui je sais et j'en ai déjà discuté avec les autres mais ils ont dit que ça reste comme ça. Donc je suppose que si d'autres sont heureux avec ça je suis trop :) – faisal1208

+0

Leçon de développeur 1: Ne pas faire confiance aux autres :) – jpgrassi

+0

haha ​​... C'est vrai mais les autres sont les mêmes que je suis;) – faisal1208