public IntervalModel GetInterval([FromRoute] int id) { IntervalModel interval = new IntervalModel(); try { Db.Connection.Open(); var cmd = Db.Connection.CreateCommand(); cmd.CommandText = $"SELECT TOP 1 * FROM LaikuIntervalai WHERE id = {id}"; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { interval = new IntervalModel() { Id = Convert.ToInt32(reader["id"]), BarId = Convert.ToInt32(reader["Baras"]), Start = Convert.ToDateTime(reader["Pradzia"]), End = Convert.ToDateTime(reader["Pabaiga"]), }; } } return(interval); } catch (Exception) { return(null); } }
public async Task <IEnumerable <UserModel> > GetUserWorkData(IntervalModel interval) { _exceptions.Clear(); DateTime dateNow = DateTime.Now.Date; IEnumerable <UserModel> employees; try { employees = Users .Where(u => u.WorkSessionData.Any(wd => wd.StartWork >= interval.From && wd.StopWork <= interval.Till)) .Include(u => u.WorkSessionData); employees = employees.Select(e => { e.WorkSessionData = e.WorkSessionData.Where(wd => wd.StartWork >= interval.From && wd.StopWork <= interval.Till).ToList(); linksNullifications(e); return(e); }); return(employees); } catch (Exception ex) { _exceptions.Add(ex); return(null); } finally { if (_exceptions.Count != 0) { throw new TimeTrakerResult(_exceptions); } } }
public virtual ActionResult Delete( int resultsMatrixId, int impactIndicatorId, int intervalId, bool accessedByAdmin, bool isThirInterval) { int code = 0; var resultsMatrix = ClientResultsMatrix.FindOneModel( new ResultsMatrixSpecification { ResultsMatrixId = resultsMatrixId }); try { ImpactIndicatorModel indicatorModel = ClientResultsMatrix.FindOneImpactIndicatorModel( new ImpactIndicatorSpecification() { ImpactIndicatorId = impactIndicatorId }); if (indicatorModel != null) { IntervalModel interval = new IntervalModel() { IntervalId = intervalId }; ClientResultsMatrix.DeleteImpactIndicator( new ResultsMatrixModel() { ResultsMatrixId = resultsMatrixId, IsThirdInterval = isThirInterval, AccessedByAdministrator = accessedByAdmin, Interval = interval }, indicatorModel, IDBContext.Current.UserName); code = 502; } } catch (Exception) { code = 498; } return(RedirectToAction( "Edit", "Impacts", new { operationId = resultsMatrix.OperationId, resultsMatrixId = resultsMatrixId, code = code })); }
public async Task <IActionResult> IntervalReport([FromBody] IntervalModel interval) { IEnumerable <UserModel> userData = await _employeesManager.GetUserWorkData(interval); var res = userData.Select(ud => new { user_name = ud.UserName, work_direction = ud.WorkDirection, work_data = ud.WorkSessionData.Select(wd => new { start_work = wd.StartWork, work_duration = wd.WorkDuration, stop_work = wd.StopWork }) }); return(Ok(res)); }
public virtual ActionResult ReassignIndicator( int resultsMatrixId, int impactId, int impactIndicatorId, int intervalId, bool accessedByAdmin, bool isThirInterval) { int code = 0; try { ImpactIndicatorModel indicatorModel = ClientResultsMatrix.FindOneImpactIndicatorModel( new ImpactIndicatorSpecification() { ImpactIndicatorId = impactIndicatorId }); ImpactModel currentImpactModel = ClientResultsMatrix.FindOneImpactModel( new ImpactSpecification() { ImpactId = indicatorModel.ImpactId }); ImpactModel newImpactModel = ClientResultsMatrix.FindOneImpactModel( new ImpactSpecification() { ImpactId = impactId }); if (indicatorModel != null && currentImpactModel != null && newImpactModel != null) { IntervalModel interval = new IntervalModel() { IntervalId = intervalId }; ClientResultsMatrix.ReassignIndicator( new ResultsMatrixModel() { ResultsMatrixId = resultsMatrixId, AccessedByAdministrator = accessedByAdmin, IsThirdInterval = isThirInterval, Interval = interval }, currentImpactModel, newImpactModel, indicatorModel, IDBContext.Current.UserName); code = 503; } } catch (Exception) { code = 497; } var resultsMatrix = ClientResultsMatrix.FindOneModel(new IDB.MW.Domain.Contracts.Specifications.ResultsMatrixSpecification() { ResultsMatrixId = resultsMatrixId }); _cacheData.Remove(_impactsIndicatorCacheName, System.Web.Caching.CacheItemRemovedReason.DependencyChanged); return(RedirectToAction("Edit", "Impacts", new { operationId = resultsMatrix.OperationId, resultsMatrixId = resultsMatrixId, code = code })); }