コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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
            }));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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 }));
        }