Ejemplo n.º 1
0
        public ActionResult doc_detail_BoilerUnitNorm()
        {
            using (var db = new CtsDbContext())
            {
                var skipWeighs = db.BoilerConsNorms;
                if (getUserLang(Request.Cookies["lang"]) == "en")
                {
                    return(View("Doc-detail/doc_detail_BoilerUnitNorm", skipWeighs.Select(s => new BoilerNorm()
                    {
                        Location = s.Location.LocationNameEng,
                        ConsumptionNorm = s.ConsNorm.ToString()
                    }).ToArray()));
                }

                if (getUserLang(Request.Cookies["lang"]) == "kk")
                {
                    return(View("Doc-detail/doc_detail_BoilerUnitNorm", skipWeighs.Select(s => new BoilerNorm()
                    {
                        Location = s.Location.LocationNameKZ,
                        ConsumptionNorm = s.ConsNorm.ToString()
                    }).ToArray()));
                }
                return(View("Doc-detail/doc_detail_BoilerUnitNorm", skipWeighs.Select(s => new BoilerNorm()
                {
                    Location = s.Location.LocationName,
                    ConsumptionNorm = s.ConsNorm.ToString()
                }).ToArray()));
            }
        }
Ejemplo n.º 2
0
        public ActionResult doc_detail_Wagons()
        {
            using (var db = new CtsDbContext())
            {
                var beltScales = db.WagonScales;
                if (getUserLang(Request.Cookies["lang"]) == "en")
                {
                    return(View("Doc-detail/doc_detail_Wagons", beltScales.Select(s => new DocWagonScales()
                    {
                        Name = s.NameEng,
                        Location = s.Location.LocationNameEng
                    }).ToArray()));
                }

                if (getUserLang(Request.Cookies["lang"]) == "kk")
                {
                    return(View("Doc-detail/doc_detail_Wagons", beltScales.Select(s => new DocWagonScales()
                    {
                        Name = s.NameKZ,
                        Location = s.Location.LocationNameKZ
                    }).ToArray()));
                }
                return(View("Doc-detail/doc_detail_Wagons", beltScales.Select(s => new DocWagonScales()
                {
                    Name = s.Name,
                    Location = s.Location.LocationName
                }).ToArray()));
            }
        }
Ejemplo n.º 3
0
        public ActionResult doc_detail_Conveyors()
        {
            using (var db = new CtsDbContext())
            {
                var beltScales = db.BeltScales;
                if (getUserLang(Request.Cookies["lang"]) == "en")
                {
                    return(View("Doc-detail/doc_detail_Conveyors", beltScales.Select(s => new DocBeltScale()
                    {
                        Name = s.NameEng,
                        Location = s.Location.LocationNameEng,
                        FromDest = s.FromInnerDest.NameEng,
                        ToDest = s.ToInnerDest.NameEng
                    }).ToArray()));
                }

                if (getUserLang(Request.Cookies["lang"]) == "kk")
                {
                    return(View("Doc-detail/doc_detail_Conveyors", beltScales.Select(s => new DocBeltScale()
                    {
                        Name = s.NameKZ,
                        Location = s.Location.LocationNameKZ,
                        FromDest = s.FromInnerDest.NameKZ,
                        ToDest = s.ToInnerDest.NameKZ
                    }).ToArray()));
                }
                return(View("Doc-detail/doc_detail_Conveyors", beltScales.Select(s => new DocBeltScale()
                {
                    Name = s.Name,
                    Location = s.Location.LocationName,
                    FromDest = s.FromInnerDest.Name,
                    ToDest = s.ToInnerDest.Name
                }).ToArray()));
            }
        }
Ejemplo n.º 4
0
        public static List <T> GetUserAuthorizedEquipment <T>(CtsDbContext cdb, IIdentity user) where T : class, IEquip
        {
            var    userLogin = user.Name.Split(new char[] { '\\' }).Last();
            var    domain    = user.Name.Split(new char[] { '\\' }).First();
            string equipName = typeof(T).ToString();
            var    equipment = Cacher.Instance.TryRead(domain + userLogin + equipName) as List <T>;

            if (equipment == null)
            {
                equipment = new List <T>();
                var locations = GetUserLocations(cdb, user);
                if (locations != null)
                {
                    var locationsArray = locations.Select(x => x.ID).ToList();
                    var genericContext = new CtsEquipContext <T>();
                    equipment.AddRange(genericContext.DbSet.Where(n => locationsArray.Contains(n.LocationID)).ToList());
                }
                if (equipment.Count > 0)
                {
                    Cacher.Instance.Write(domain + userLogin + equipName, equipment);
                }
            }

            return(equipment);
        }
Ejemplo n.º 5
0
        public static bool UserHasLocationRole(IIdentity user, string locationID)
        {
            bool   flag = false;
            object loginDB, domainDB, rolesDB;

            string users = user.Name;

            users = users.Remove(0, 7);

            using (var cdb = new CtsDbContext())
            {
                locationID = cdb.Locations.Find(locationID).LocationName;

                string connectionString = ConfigurationManager.ConnectionStrings["CentralDbConnection"].ConnectionString;

                List <string> roleList = new List <string>();

                string sql = $"SELECT CtsUser_Login, CtsUser_Domain, CtsRole_RoleName FROM CtsUserCtsRoles WHERE CtsUser_Login = '******'";

                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    SqlCommand    command = new SqlCommand(sql, connection);
                    SqlDataReader reader  = command.ExecuteReader();

                    try
                    {
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                loginDB  = reader.GetValue(0);
                                domainDB = reader.GetValue(1);
                                rolesDB  = reader.GetValue(2);

                                if (loginDB.ToString().ToLower() == users.ToLower().ToString())
                                {
                                    if (rolesDB.ToString().ToLower() == locationID.ToString().ToLower())
                                    {
                                        flag = true;
                                    }
                                }
                            }
                        }
                        reader.Close();
                    }
                    catch (Exception ex)
                    { }

                    if (flag)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public ActionResult doc_detail_Skips()
        {
            using (var db = new CtsDbContext())
            {
                var skips = db.Skips;
                if (getUserLang(Request.Cookies["lang"]) == "en")
                {
                    return(View("Doc-detail/doc_detail_Skips", skips.Select(s => new DocSkip()
                    {
                        Weight = s.Weight,
                        Name = s.NameEng,
                        Location = s.Location.LocationNameEng
                    }).ToArray()));
                }

                if (getUserLang(Request.Cookies["lang"]) == "kk")
                {
                    return(View("Doc-detail/doc_detail_Skips", skips.Select(s => new DocSkip()
                    {
                        Weight = s.Weight,
                        Name = s.NameKZ,
                        Location = s.Location.LocationNameKZ
                    }).ToArray()));
                }
                return(View("Doc-detail/doc_detail_Skips", skips.Select(s => new DocSkip()
                {
                    Weight = s.Weight,
                    Name = s.Name,
                    Location = s.Location.LocationName
                }).ToArray()));
            }
        }
Ejemplo n.º 7
0
        private static string[] GetReprtRoles()
        {
            var cdb = new CtsDbContext();

            return(cdb.CtsRole
                   .Where(r => r.RoleName.ToLower().StartsWith("rep"))
                   .Select(r => r.RoleName)
                   .ToArray());
        }
Ejemplo n.º 8
0
        public static bool SyncWagonNums()
        {
            var recogns = new List <Recogn>();
            var nums    = new List <WagonNumsCache>();

            try
            {
                using (CtsDbContext centralDB = new CtsDbContext())
                {
                    recogns.AddRange(centralDB.Recogn.ToList());
                }

                using (var wagDB = new WagonDBcontext())
                {
                    foreach (var r in recogns)
                    {
                        nums.AddRange(wagDB.vagon_nums.Where(x => x.recognid == r.ID).OrderByDescending(x => x.date_time).Take(50)
                                      .Select(x => new WagonNumsCache
                        {
                            ID              = x.id,
                            Date_time       = x.date_time,
                            RecognID        = x.recognid,
                            Id_sostav       = x.id_sostav,
                            Number          = x.number,
                            Number_operator = x.number_operator,
                            Id_operator     = x.id_operator,
                            Camera          = x.camera,
                        }).ToList());
                    }
                }

                if (nums.Any())
                {
                    using (CtsDbContext centralDB = new CtsDbContext())
                    {
                        using (var transaction = centralDB.Database.BeginTransaction())
                        {
                            centralDB.WagonNumsCache.RemoveRange(centralDB.WagonNumsCache);
                            centralDB.WagonNumsCache.AddRange(nums);
                            centralDB.SaveChanges();
                            transaction.Commit();
                        }
                    }
                }

                _logger.Trace("Successfully Synchronized WagonNums");
                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error("Unsuccess with SyncWagonNums");
                _logger.Error(ex.Message.ToString());

                return(false);
            }
        }
 public UtilizationController(CtsDbContext cdbcontext)
 {
     if (cdbcontext != null)
     {
         _cdb = cdbcontext;
     }
     else
     {
         _cdb = new CtsDbContext();
     }
 }
Ejemplo n.º 10
0
 public WagonScalesController(CtsDbContext cdbcontext)
 {
     if (cdbcontext != null)
     {
         _cdb = cdbcontext;
     }
     else
     {
         _cdb = new CtsDbContext();
     }
 }
Ejemplo n.º 11
0
 public SkipController(CtsDbContext cdbcontext)
 {
     if (cdbcontext != null)
     {
         _cdb = cdbcontext;
     }
     else
     {
         _cdb = new CtsDbContext();
     }
 }
Ejemplo n.º 12
0
        public ActionResult Mine_counter()
        {
            using (CTS_Models.DBContext.CtsDbContext db = new CtsDbContext())
            {
                var sumCounter = db.RailWeighbridges.Select(x => new
                {
                    TransferTimeStamp = x.TransferTimeStamp,
                    Weight            = x.Weight
                }).ToList();

                return(View(sumCounter.ToList()));
            }
        }
Ejemplo n.º 13
0
        public static bool UserHasLocationRole(IIdentity user, string locationID)
        {
            var cacheKey = user.Name + "UserHasLocationRole" + locationID;

            if (Cacher.Instance.TryRead(cacheKey) is bool)
            {
                return((bool)Cacher.Instance.TryRead(cacheKey));
            }

            var cdb = new CtsDbContext();
            var userHasLocationRole = CtsAuthorizeProvider.CheckIsInRole(user, cdb.Locations.Find(locationID).LocationName);

            Cacher.Instance.Write(cacheKey, userHasLocationRole);
            return(userHasLocationRole);
        }
Ejemplo n.º 14
0
        private static bool SyncFromCentralToLocalAndDeleteWarehouseTransfers(ConnectionStringSettings connectionStringSettings)
        {
            List <WarehouseTransfer> centralTransferList = new List <WarehouseTransfer>();
            string stringForLogger = "";

            try
            {
                using (CtsDbContext centralDB = new CtsDbContext())
                {
                    centralTransferList.AddRange(centralDB.WarehouseTransfers.Where(x => x.Warehouse.LocationID == connectionStringSettings.Name.ToString())
                                                 .Where(x => x.TransferTimeStamp > DbFunctions.AddDays(System.DateTime.Today, -2)));
                }

                if (centralTransferList.Count != 0)
                {
                    using (CtsDbContext localDB = new CtsDbContext(connectionStringSettings.ConnectionString))
                    {
                        using (var transaction = localDB.Database.BeginTransaction())
                        {
                            foreach (var t in centralTransferList)
                            {
                                localDB.WarehouseTransfers.AddOrUpdate(t);
                                stringForLogger = String.Concat(stringForLogger, t.ID, ";");
                            }

                            List <WarehouseTransfer> localTransferList = new List <WarehouseTransfer>();
                            localTransferList.AddRange(localDB.WarehouseTransfers.Where(x => x.TransferTimeStamp <= DbFunctions.AddDays(System.DateTime.Today, -3)));
                            localDB.WarehouseTransfers.RemoveRange(localTransferList);

                            localDB.SaveChanges();
                            transaction.Commit();
                        }
                    }
                }

                _logger.Trace(string.Format("{0} Successfully synchronized SyncFromCentralToLocalAndDeleteWarehouseTransfers: {1}", connectionStringSettings.Name.ToString(), stringForLogger));
                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error(string.Format("{0} Unsuccess with SyncFromCentralToLocalAndDeleteWarehouseTransfers", connectionStringSettings.Name.ToString()));
                _logger.Error(ex.ToString());

                return(false);
            }
        }
Ejemplo n.º 15
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            string user = httpContext.User.Identity.Name;

            user = user.Substring(7);

            var db = new CtsDbContext();

            bool isValid = db.CtsUserCtsRole.Any(d => d.CtsRole_RoleName == _allowedRoles.ToString());

            if (isValid)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 16
0
        public static List <Item> GetItems(CtsDbContext cdb, IIdentity user)
        {
            var userLogin = user.Name.Split(new char[] { '\\' }).Last();
            var domain    = user.Name.Split(new char[] { '\\' }).First();

            if (!(Cacher.Instance.TryRead(domain + userLogin + "Items") is List <Item> items))
            {
                items = new List <Item>();
                var groups = CtsAuthorizeProvider.GetUserRolesFromDb(user).Select(x => x.RoleName).ToArray();
                items.AddRange(cdb.Items.Where(n => groups.Contains(n.Location.DomainName)).ToList());

                if (items.Count > 0)
                {
                    Cacher.Instance.Write(domain + userLogin + "Items", items);
                }
            }

            return(items);
        }
Ejemplo n.º 17
0
        public ActionResult doc_detail_SkipsWeights()
        {
            using (var db = new CtsDbContext())
            {
                var           skipWeighs = db.SkipWeights;
                SkipWeights[] model;
                if (getUserLang(Request.Cookies["lang"]) == "en")
                {
                    model = skipWeighs.Select(s => new SkipWeights()
                    {
                        Name       = s.Skip.NameEng,
                        Location   = s.Skip.Location.LocationNameEng,
                        Weight     = s.Weight.ToString(),
                        SkipWeight = s,
                    }).ToArray();
                }

                if (getUserLang(Request.Cookies["lang"]) == "kk")
                {
                    model = skipWeighs.Select(s => new SkipWeights()
                    {
                        Name       = s.Skip.NameKZ,
                        Location   = s.Skip.Location.LocationNameKZ,
                        Weight     = s.Weight.ToString(),
                        SkipWeight = s,
                    }).ToArray();
                }
                model = skipWeighs.Select(s => new SkipWeights()
                {
                    Name       = s.Skip.Name,
                    Location   = s.Skip.Location.LocationName,
                    Weight     = s.Weight.ToString(),
                    SkipWeight = s,
                }).ToArray();
                foreach (var s in model)
                {
                    s.ActFilePath = Directory.EnumerateFiles(CTS_Core.ProjectConstants.SkipActFolderPath, s.SkipWeight.ID + ".*").FirstOrDefault();
                }
                //model.Select(s => s.ActFilePath = Directory.EnumerateFiles(ProjectConstants.SkipActFolderPath, s.SkipWeight.ID.ToString() + ".*").FirstOrDefault());
                return(View("Doc-detail/doc_detail_SkipWeights", model));
            }
        }
Ejemplo n.º 18
0
        public string GetLocationNameOnCurrentLanguate(string locationID)
        {
            if (!string.IsNullOrEmpty(locationID))
            {
                var db       = new CtsDbContext();
                var location = db.Locations.Find(locationID);
                var name     = location.LocationName;
                if (getUserLang(Request.Cookies["lang"]) == "en")
                {
                    name = location.LocationNameEng;
                }

                if (getUserLang(Request.Cookies["lang"]) == "kk")
                {
                    name = location.LocationNameKZ;
                }
                return(name);
            }
            return("");
        }
Ejemplo n.º 19
0
        public static List <Location> GetUserLocations(CtsDbContext cdb, IIdentity user)
        {
            var userLogin = user.Name.Split(new char[] { '\\' }).Last();
            var domain    = user.Name.Split(new char[] { '\\' }).First();

            if (!(Cacher.Instance.TryRead(domain + userLogin + "Locations") is List <Location> locations))
            {
                locations = new List <Location>();
#if DEBUG
                return(cdb.Locations.ToList());
#endif
                var groups = CtsAuthorizeProvider.GetUserRolesFromDb(user).Select(x => x.RoleName).ToArray();
                locations.AddRange(cdb.Locations.Where(n => groups.Contains(n.LocationName)).ToList());
                if (locations.Count > 0)
                {
                    Cacher.Instance.Write(domain + userLogin + "Locations", locations);
                }
            }

            return(locations);
        }
Ejemplo n.º 20
0
        public static ICollection <CtsRole> GetUserRolesFromDb(IIdentity user)
        {
            var cdb       = new CtsDbContext();
            var userLogin = user.Name.Split(new char[] { '\\' }).Last();
            var domain    = user.Name.Split(new char[] { '\\' }).First();


            if (!(Cacher.Instance.TryRead(domain + userLogin + "Roles") is CtsUser ctsUser))
            {
                ctsUser = cdb.CtsUser.Where(x => x.Login == userLogin).FirstOrDefault(x => x.Domain == domain);
                if (ctsUser != null)
                {
                    cdb.Entry(ctsUser).Collection(x => x.CtsRoles).Load();
                    Cacher.Instance.Write(domain + userLogin + "Roles", ctsUser);
                }
                else
                {
                    ctsUser = new CtsUser();
                }
            }
            return(ctsUser.CtsRoles);
        }
Ejemplo n.º 21
0
        public static void ManageWeights()
        {
            var stringForLogger = new StringBuilder();

            try
            {
                CtsDbContext centralDB = new CtsDbContext();
                var          skips     = centralDB.Skips.ToList();

                foreach (var s in skips)
                {
                    var skipWeight = centralDB.SkipWeights.Where(x => x.SkipID == s.ID)
                                     .Where(d => d.ValidFrom <= System.DateTime.Now).OrderByDescending(m => m.ValidFrom).FirstOrDefault();
                    if (skipWeight != null)
                    {
                        if (s.Weight != skipWeight.Weight)
                        {
                            s.Weight = skipWeight.Weight;
                            centralDB.Entry(s).State = EntityState.Modified;
                            stringForLogger.Append("SkipID ");
                            stringForLogger.Append(s.ID);
                            stringForLogger.Append(" = ");
                            stringForLogger.Append(s.Weight);
                            stringForLogger.Append("; ");
                        }
                    }
                }

                centralDB.SaveChanges();
                stringForLogger.Insert(0, "Weight changed for ");
                _logger.Trace(stringForLogger.ToString());
            }
            catch (Exception ex)
            {
                _logger.Error("Unsuccess with SkipWeightHandler");
                _logger.Error(ex.ToString());
            }
        }
Ejemplo n.º 22
0
        private static bool SyncFromCentralToLocalAndDeleteWagonNumsCache(ConnectionStringSettings connectionStringSettings)
        {
            var nums = new List <WagonNumsCache>();

            try
            {
                using (CtsDbContext centralDB = new CtsDbContext())
                {
                    nums.AddRange(centralDB.WagonNumsCache.Where(x => x.Recogn.LocationID == connectionStringSettings.Name.ToString()).ToList());
                }

                if (nums.Any())
                {
                    using (CtsDbContext localDB = new CtsDbContext(connectionStringSettings.ConnectionString))
                    {
                        using (var transaction = localDB.Database.BeginTransaction())
                        {
                            localDB.WagonNumsCache.RemoveRange(localDB.WagonNumsCache);
                            localDB.WagonNumsCache.AddRange(nums);
                            localDB.SaveChanges();
                            transaction.Commit();
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                lock (log)
                {
                    log.Message(ex);
                }
                return(false);
            }
        }
Ejemplo n.º 23
0
        private static bool SyncFromCentralToLocalAndDeleteWagonNumsCache(ConnectionStringSettings connectionStringSettings)
        {
            var nums = new List <WagonNumsCache>();

            try
            {
                using (CtsDbContext centralDB = new CtsDbContext())
                {
                    nums.AddRange(centralDB.WagonNumsCache.Where(x => x.Recogn.LocationID == connectionStringSettings.Name.ToString()).ToList());
                }

                if (nums.Any())
                {
                    using (CtsDbContext localDB = new CtsDbContext(connectionStringSettings.ConnectionString))
                    {
                        using (var transaction = localDB.Database.BeginTransaction())
                        {
                            localDB.WagonNumsCache.RemoveRange(localDB.WagonNumsCache);
                            localDB.WagonNumsCache.AddRange(nums);
                            localDB.SaveChanges();
                            transaction.Commit();
                        }
                    }
                }

                _logger.Trace(string.Format("{0} Successfully synchronized SyncFromCentralToLocalAndDeleteWagonNumsCache", connectionStringSettings.Name.ToString()));
                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error(string.Format("{0} Unsuccess with SyncFromCentralToLocalAndDeleteWagonNumsCache", connectionStringSettings.Name.ToString()));
                _logger.Error(ex.ToString());

                return(false);
            }
        }
Ejemplo n.º 24
0
        public string GetWagonWeightDetails(int weightScaleId)
        {
            var fromDate = GetDateFromCookie("fromdate");
            var toDate   = GetDateFromCookie("todate");

            using (var cdb = new CtsDbContext())
            {
                var weightTransfers = cdb.WagonTransfers
                                      .Where(d => d.TransferTimeStamp >= fromDate && d.TransferTimeStamp <= toDate)
                                      .Where(t => t.EquipID == weightScaleId);

                var periodWeight = weightTransfers.Sum(s => s.Netto);
                var trainWeight  = weightTransfers
                                   .OrderByDescending(t => t.TransferTimeStamp)
                                   .GroupBy(v => v.LotName)
                                   .FirstOrDefault()?
                                   .Sum(s => s.Netto);

                return(" <div class='block-info green' id='bi1'>" +
                       "<div class='title'>" +
                       "</div>" +
                       "<div class='line'>" +
                       "<span class='name'>" + Resources.ResourceMnemonic.WeightConclusionIn1Train + "</span>" +
                       "<div class='count'>" + (int?)trainWeight + "</div>" +
                       "<span class='caption'>" + Resources.ResourceMnemonic.Tonns + "</span>" +
                       "<div class='clearfix'></div>" +
                       "</div>" +
                       "<div class='line'>" +
                       "<span class='name'>" + Resources.ResourceMnemonic.WeightConclusionWeightPerPeriod + "</span>" +
                       "<div class='count'>" + (int?)periodWeight + "</div>" +
                       "<span class='caption'>" + Resources.ResourceMnemonic.Tonns + "</span>" +
                       "<div class='clearfix'></div>" +
                       "</div>" +
                       "</div>");
            }
        }
Ejemplo n.º 25
0
        public static bool SyncVesWagon()
        {
            string stringForLoggerAccepted = "";
            string stringForLoggerRejected = "";
            string stringForLoggerWrong    = "";
            //int lastID;
            List <WagonScale> wagonScales;
            List <Item>       items;

            Int32.TryParse(ConfigurationManager.AppSettings["WagonDBSyncDepth_Days"], out int syncDepth);
            var dueDate = syncDepth == 0 ? default(DateTime) : DateTime.Now.AddDays(syncDepth * -1);

            try
            {
                using (CtsDbContext centralDB = new CtsDbContext())
                {
                    //var ltr = centralDB.WagonTransfers.Where(x => !x.ID.StartsWith("W")).OrderByDescending(t => t.TransferTimeStamp).Take(1000).Select(m => m.ID).ToArray();
                    //lastID = (ltr.Length != 0) ? ltr.Select(x => int.Parse(x)).OrderByDescending(m => m).FirstOrDefault() : 0;
                    wagonScales = centralDB.WagonScales.Include(m => m.Location).ToList();
                    items       = centralDB.Items.Include(m => m.Location).ToList();
                }

                var transfers = new List <ves_vagon>();
                using (var wagDB = new WagonDBcontext())
                {
                    //transfers = wagDB.ves_vagon.Where(x => x.id > lastID).Include(m => m.scales).Include(h => h.napravlenie)
                    //														.Include(n => n.otpravl).Include(k => k.poluch).ToList();

                    transfers = wagDB.ves_vagon.Where(x => x.id_operator != null)
                                .Where(x => x.id_operator != 0)
                                .Where(x => x.sync != 1)
                                .Where(x => x.date_time_brutto >= dueDate)
                                .Include(m => m.scales)
                                .Include(h => h.napravlenie)
                                .Include(n => n.otpravl).Include(k => k.poluch).ToList();
                }

                if (transfers.Count > 0)
                {
                    var acceptedTransfers = new List <WagonTransfer>();

                    using (var centralDB = new CtsDbContext())
                    {
                        using (var transaction = centralDB.Database.BeginTransaction())
                        {
                            foreach (var trans in transfers)
                            {
                                try
                                {
                                    var scale = GetCTSWagonScale(trans.scales.name, wagonScales);
                                    var item  = items.Where(x => x.Name == trans.gruz).FirstOrDefault();

                                    var transfer = new WagonTransfer()
                                    {
                                        ID = trans.id.ToString(),
                                        TransferTimeStamp = trans.date_time_brutto,
                                        LasEditDateTime   = DateTime.Now,
                                        OperatorName      = "DBSync",
                                        LotName           = trans.id_sostav.ToString() ?? "",
                                        SublotName        = trans.vagon_num ?? "",
                                        OrderNumber       = trans.nakladn ?? "",
                                        FromDestID        = trans.otpravl.name ?? "",
                                        ToDest            = trans.poluch.display_name ?? "",
                                        Tare         = (float)trans.ves_tara / 1000,
                                        Brutto       = (float)trans.ves_brutto / 1000,
                                        Netto        = (float)trans.ves_netto / 1000,
                                        NettoByOrder = (float)trans.ves_netto_docs / 1000,
                                        EquipID      = (scale != null) ? scale.ID : 1,
                                        ItemID       = (item != null) ? item.ID : 1,
                                        Direction    = trans.napravlenie.display_name ?? "",
                                        IsValid      = true,
                                        Status       = 0,
                                    };

                                    var vc       = new ValidationContext(transfer, null, null);
                                    var vResults = new List <ValidationResult>();
                                    var isValid  = Validator.TryValidateObject(transfer, vc, vResults, true);
                                    if (isValid && (transfer.SublotName != ""))
                                    {
                                        acceptedTransfers.Add(transfer);
                                        centralDB.WagonTransfers.AddOrUpdate(transfer);
                                        stringForLoggerAccepted = String.Concat(stringForLoggerAccepted, trans.id, ";");
                                    }
                                    else
                                    {
                                        stringForLoggerRejected = String.Concat(stringForLoggerRejected, trans.id, ";");
                                    }
                                }
                                catch (Exception)
                                {
                                    stringForLoggerWrong = String.Concat(stringForLoggerWrong, trans.id, ";");
                                }
                            }

                            centralDB.SaveChanges();
                            transaction.Commit();
                        }
                    }

                    using (var wagDB = new WagonDBcontext())
                    {
                        foreach (var t in acceptedTransfers)
                        {
                            var originalTransfer = wagDB.ves_vagon.Find(Int32.Parse(t.ID));
                            if (originalTransfer != null)
                            {
                                originalTransfer.sync = 1;
                                wagDB.Entry(originalTransfer).State = EntityState.Modified;
                            }
                        }

                        using (var transaction = wagDB.Database.BeginTransaction())
                        {
                            wagDB.SaveChanges();
                            transaction.Commit();
                        }
                    }
                }

                _logger.Trace(string.Format("Successfully Synchronized VesWagon: {0}", stringForLoggerAccepted));
                _logger.Trace(string.Format("Successfully Synchronized VesWagon, not accepted transfers: {0}", stringForLoggerRejected));
                _logger.Trace(string.Format("Successfully Synchronized VesWagon, transfers with wrong properties: {0}", stringForLoggerWrong));

                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error("Unsuccess with SyncVesWagon");
                _logger.Error(ex.Message.ToString());

                return(false);
            }
        }
Ejemplo n.º 26
0
 public SkipController()
 {
     _cdb = new CtsDbContext();
 }
Ejemplo n.º 27
0
 public ApproveController()
 {
     _cdb = new CtsDbContext();
 }
Ejemplo n.º 28
0
 public WagonScalesController()
 {
     _cdb = new CtsDbContext();
 }
Ejemplo n.º 29
0
 public LabBeltController()
 {
     _cdb = new CtsDbContext();
 }
Ejemplo n.º 30
0
        public static TransfersToApprove <TTransfer> GetTransfersToApprove <TTransfer, TEquip>(CtsDbContext cdb, IIdentity user)
            where TTransfer : class, ITransfer
            where TEquip : class, IEquip
        {
            var equips      = EquipmentProvider.GetUserAuthorizedEquipment <TEquip>(cdb, user);
            var equipsArray = equips.Select(x => x.ID).ToArray();
            var dbcontext   = new CtsTransferContext <TTransfer>();
            var transfers   = dbcontext.DbSet.Where(t => equipsArray.Contains((int)t.EquipID))
                              .Where(d => d.TransferTimeStamp >= DbFunctions.AddDays(System.DateTime.Now, -2)).ToList();

            var transfersToApprove = new TransfersToApprove <TTransfer>();

            transfersToApprove.CreatedTransfers = transfers.Where(m => m.Status == 1).ToList();
            transfersToApprove.EditedTransfers  = transfers.Where(m => m.Status == 2).ToList();
            var obsoleteArray = transfersToApprove.EditedTransfers.Select(x => x.InheritedFrom).ToArray();

            transfersToApprove.ObsoleteTransfers = dbcontext.DbSet.Where(m => obsoleteArray.Contains(m.ID)).ToList();
            transfersToApprove.DeletedTransfers  = transfers.Where(m => m.Status == 4).ToList();

            return(transfersToApprove);
        }