private void a_Imported(object sender, PackProcessEventArgs e)
        {
            Trace.WriteIf(ZeroCommonClasses.Environment.Config.LogLevel.TraceInfo,
                string.Format("Import Finished: Status = {3}, ConnID = {0}, DB Pack = {1}, Pack Module = {2}",
                              e.ConnectionID, e.Pack.Code, e.PackInfo != null ? e.PackInfo.ModuleCode : -1,
                              (PackManager.PackStatus)e.Pack.PackStatusCode), "Information");

            if (e.Pack.PackStatusCode == (int)PackManager.PackStatus.Imported)
            {
                if ((e.Pack.IsMasterData.GetValueOrDefault()) || (e.Pack.IsUpgrade.GetValueOrDefault()))
                {
                    using (var packEnt = new CommonEntitiesManager())
                    {
                        using (var ent = new ConfigurationModelManager())
                        {
                            foreach (var item in ent.Terminals.Where(t => t.Code != e.PackInfo.TerminalCode))
                            {
                                Trace.WriteIf(ZeroCommonClasses.Environment.Config.LogLevel.TraceVerbose, string.Format("Saved to Pendings of Terminal {0}", item.Code), "Verbose");
                                PackPending pp = PackPending.CreatePackPending(e.Pack.Code, item.Code);
                                pp.Stamp = DateTime.Now;
                                packEnt.PackPendings.AddObject(pp);
                            }
                        }
                        packEnt.SaveChanges();
                    }
                }
                else
                {

                    if (e.PackInfo != null && e.PackInfo.TerminalToCodes.Count > 0)
                    {
                        using (var packEnt = new CommonEntitiesManager())
                        {
                            using (var ent = new ConfigurationModelManager())
                            {
                                foreach (int terminal in e.PackInfo.TerminalToCodes.Where(c => c != e.PackInfo.TerminalCode))
                                {
                                    if (ent.Terminals.FirstOrDefault(t => t.Code == terminal) != null)
                                    {
                                        Trace.WriteIf(ZeroCommonClasses.Environment.Config.LogLevel.TraceVerbose, string.Format("Saved to Pendings of Terminal {0}", terminal), "Verbose");
                                        PackPending pp = PackPending.CreatePackPending(e.Pack.Code, terminal);
                                        pp.Stamp = DateTime.Now;
                                        packEnt.PackPendings.AddObject(pp);
                                    }

                                }
                            }
                            packEnt.SaveChanges();
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
 private static void UpdatePackStatus(Entities.Pack aPack, CommonEntitiesManager dbent, PackStatus newStatus, string message)
 {
     aPack.Stamp = DateTime.Now;
     aPack.PackStatusCode = (int)newStatus;
     aPack.Result = message != null ? aPack.Result +"\n"+ message : aPack.Result;
     dbent.SaveChanges();
 }
Exemplo n.º 3
0
        private Entities.Pack InsertPackInDb(string packFilePath, CommonEntitiesManager dbent)
        {
            if (dbent == null) throw new ArgumentNullException("dbent");

            string name = Path.GetFileName(packFilePath);
            Entities.Pack P = dbent.Packs.FirstOrDefault(p => p.Name == name);
            if (default(Entities.Pack) == P)
            {
                P = Entities.Pack.CreatePack(0, true);
                P.Name = name;
                P.Data = File.ReadAllBytes(packFilePath);
                if (!string.IsNullOrWhiteSpace(ConnectionID))
                    P.ConnectionCode = ConnectionID;
                dbent.AddToPacks(P);
                dbent.SaveChanges();
            }

            return P;
        }
        public void MarkPackReceived(int terminalCode,int packCode)
        {
            PackPending packPending;
            using (var ent = new CommonEntitiesManager())
            {
                packPending = ent.PackPendings.FirstOrDefault(pp => pp.PackCode == packCode && pp.TerminalCode == terminalCode);
                if (packPending != null)
                {
                    ent.PackPendings.DeleteObject(packPending);
                    ent.SaveChanges();
                }

                bool mark = Enumerable.All(ent.Packs.Where(p => p.Code == packCode), item => !item.IsMasterData.HasValue || !item.IsMasterData.Value);
                if (!mark)
                {

                }
            }
        }