private StateResponse _putStart(dialogTimeEntities db, string persId, StartStop entry, PutStateInfoEx data, bool manuell = false) { if (entry != null && (entry.TimeIntervall.EndsWith("-") || entry.TimeIntervall.EndsWith("p"))) { return(new StateResponse() { Success = false, Error = "Kann man nicht starten wenn nicht gestoppt. Bitte melden!" }); } else { var x = new StartStop() { Datum = data.Datum.Date, LohnkategorieKuerzel = data.LohnKategorie, PersId = persId, ProjektId = Guid.Parse(data.Projekt), TarifkategorieId = data.TarifKategorie, Text = data.Text, TimeIntervall = string.Format("{0:00}:{1:00}-", data.Datum.Hour, data.Datum.Minute), StartStopManuell = manuell }; db.StartStops.Add(x); db.SaveChanges(); return(new Models.StateResponse() { Success = true, TimeIntervall = x.TimeIntervall, Error = null }); } }
private StateResponse _putCancel(dialogTimeEntities db, string persId, StartStop entry) { if (entry == null) { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht stornieren wenn nicht gestarted. Bitte melden!" }); } db.StartStops.Remove(entry); db.SaveChanges(); return(new Models.StateResponse() { Success = true, TimeIntervall = string.Empty, Error = null }); }
private StateResponse _putStop(dialogTimeEntities db, string persId, StartStop entry, DateTime datum, bool manuell = false) { if (entry == null) { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht stoppen wenn nicht gestarted. Bitte melden!" }); } var timeIntervall = entry.TimeIntervall; if (timeIntervall.EndsWith("-") || timeIntervall.EndsWith("p")) { if (timeIntervall.EndsWith("-")) { entry.TimeIntervall = timeIntervall + string.Format("{0:00}:{1:00}", datum.Hour, datum.Minute); } else { entry.TimeIntervall = timeIntervall.Substring(0, timeIntervall.Length - 1); } if (manuell) { entry.StartStopManuell = manuell; } var ii = new Intervalls(entry.TimeIntervall); var jj = new Intervalls(); var q2 = from x in db.RapportEintraege where x.PersId == persId && x.Datum == datum.Date select x; foreach (var e in q2) { jj.AddRange(new Intervalls(e.TimeIntervall)); } ii.CutWith(jj); var eintrag = new RapportEintrag() { Id = Guid.NewGuid(), AnsatzExtern = 0, AnsatzIntern = 0, ArbeitsRapportNr = 0, Aufwand = Math.Round(ii.EllapsedAsDouble, 1), Datum = datum.Date, ErfDatum = DateTime.Now, ErfName = persId, LohnkategorieKuerzel = entry.LohnkategorieKuerzel, LohnKatKontierung = "", MandantId = Guid.Parse("331A58AF-C3F6-42BE-BF55-0AE0C5F26C87"), MutDatum = DateTime.Now, MutName = persId, PersId = persId, ProjektId = entry.ProjektId, TarifkategorieId = entry.TarifkategorieId, Text = entry.Text, TimeIntervall = ii.ToString(), Verrechnet = 0, Zuschlag = 0, StartStopManuell = entry.StartStopManuell }; db.RapportEintraege.Add(eintrag); db.SaveChanges(); return(new Models.StateResponse() { Success = true, TimeIntervall = eintrag.TimeIntervall, Error = null }); } else { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht stoppen wenn nicht gestarted. Bitte melden!" }); } }
public StateResponse PutState(string name, [FromBody] PutStateInfo data) { // Ejemplo // api/StartStop/State/Fritz // { Action="start", Projekt="", LohnKategorie="", TarifKategorie="", Text="" } // { Action="stop" } // { Action="pause" } // { Action="resume" } StartStop entry = null; var db = new dialogTimeEntities(); using (db) { try { var q = from x in db.StartStops where x.PersId == name orderby x.Id descending select x; if (q.Any()) { entry = q.First(); } // --------------------------------------------- switch (data.Action) { case "start": return(_putStart(db, name, entry, new PutStateInfoEx() { Action = "start", Datum = DateTime.Now, LohnKategorie = data.LohnKategorie, Projekt = data.Projekt, TarifKategorie = data.TarifKategorie, Text = data.Text })); case "pause": { if (entry == null) { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht pausen wenn nicht gestartet. Bitte melden!" }); } var timeIntervall = entry.TimeIntervall; if (timeIntervall.EndsWith("-")) { entry.TimeIntervall = timeIntervall + string.Format("{0:00}:{1:00}p", DateTime.Now.Hour, DateTime.Now.Minute); db.SaveChanges(); return(new StateResponse() { Success = true, Error = null, TimeIntervall = entry.TimeIntervall }); } else { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht pausen wenn nicht gestartet. Bitte melden!" }); } } case "resume": { if (entry == null) { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht resumen wenn nicht gepaused. Bitte melden!" }); } var timeIntervall = entry.TimeIntervall; if (timeIntervall.EndsWith("p")) { entry.TimeIntervall = timeIntervall.Substring(0, timeIntervall.Length - 1) + string.Format(",{0:00}:{1:00}-", DateTime.Now.Hour, DateTime.Now.Minute); db.SaveChanges(); return(new Models.StateResponse() { Success = true, TimeIntervall = entry.TimeIntervall, Error = null }); } else { return(new Models.StateResponse() { Success = false, Error = "Kann man nicht resumen wenn nicht gepaused. Bitte melden!" }); } } case "stop": return(_putStop(db, name, entry, DateTime.Now)); case "cancel": return(_putCancel(db, name, entry)); default: return(new Models.StateResponse() { Success = false, Error = "Keine Aktion vorhanden. Bitte melden!" }); } } catch (Exception ex) { return(new Models.StateResponse() { Success = false, Error = ex.Message }); } } }