示例#1
0
        private void GetAssembly(SubsystemService subsystemService)
        {
            try
            {
                EnumSystemOperationMode mode = (EnumSystemOperationMode)Enum.Parse(typeof(EnumSystemOperationMode),
                                                                                   ConfigurationManager.AppSettings["SystemOperationMode"]);

                if (!Directory.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, mode.ToString())))
                {
                    Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, mode.ToString()));
                }

                using (SubsystemEndpoint subsystemEndPoint = new SubsystemEndpoint(new TCPBinding(), subsystemService.EndpointAddress))
                {
                    subsystemEndPoint.Open();
                    GetAssemblyParameterMessage msg      = new GetAssemblyParameterMessage(mode);
                    SubsystemAssembly           assembly = subsystemEndPoint.GetAssembly(msg);

                    //save the assembly locally
                    subsystemService.ZippedFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, mode.ToString(), assembly.filename);
                    using (FileStream stream = new FileStream(subsystemService.ZippedFilename, FileMode.Create))
                    {
                        assembly.file.CopyTo(stream);
                    }
                }

                if (SubsystemServiceListUpdateEvent != null)
                {
                    SubsystemServiceListUpdateEvent(subsystemService.Alias, SubsystemUpdateEnum.SubsystemConnect, subsystemService.ZippedFilename);
                }
            }
            catch (Exception ex)
            {
                RemoveSubsystem(subsystemService);
                _Logger.LogError(ex);
            }
        }
示例#2
0
 public GetAssemblyParameterMessage(EnumSystemOperationMode mode)
 {
     SystemMode = mode;
 }
示例#3
0
 public GetAssemblyParameterMessage(EnumSystemOperationMode mode)
 {
     SystemMode = mode;
 }