Пример #1
0
        protected override void OnStart(string[] args)
        {
#if DEBUG
            if (!System.Diagnostics.Debugger.IsAttached)
            {
                System.Diagnostics.Debugger.Launch();
            }
#endif


            Repository.Repository.Initialize(CommandLineHelper.GetConfigFilePath(args) ?? Repository.Repository.DefaultDatabaseFilePath);
            ClientLogService.Initialize(CommandLineHelper.GetLogFilePath(args) ?? ClientLogService.DefaultLogFilePath);

            AddLog("WaterGate Service started");
            using (StreamWriter stream = new StreamWriter(LogFilePath, true))
            {
                stream.WriteLine("Служба запущена!");
                stream.WriteLine(DateTime.Now);
            }

            workerThread.Start();
            TCPlistenerthread.Start();

            var repository = new Repository.Repository();

            var port    = repository.GetPortNumber();
            var host    = new ServiceHost(typeof(WaterGateRemoteService), new Uri("http://localhost:" + port + "/WaterGateService/soap"));
            var binding = new BasicHttpBinding()
            {
                MaxReceivedMessageSize = int.MaxValue
            };

            host.AddServiceEndpoint(typeof(IWaterGateService), binding, string.Empty);
            host.Open();
        }
    /// <summary>
    /// 建立关系
    /// </summary>
    /// <param name="token">Hash 客户端信息</param>
    /// <param name="fromClientId">int 邀请人客户端编号</param>
    /// <param name="scene">int 来源场景</param>
    /// <param name="encryptedData">string 群标识加密信息</param>
    /// <param name="iv">string 群标识加密向量</param>
    /// <returns>Hash 返回结果</returns>
    public static Hash Create(Hash token, int fromClientId, int scene, string encryptedData, string iv)
    {
        if (fromClientId == 0)
        {
            return(new Hash((int)CodeType.ClientRelateRequired, "邀请人不存在"));
        }
        Hash shareTicket = new Hash();

        if (!Genre.IsNull(encryptedData) && !Genre.IsNull(iv) && !token.IsNull("sessionKey"))
        {
            ClientLogService.Append(encryptedData + " | " + iv + " | " + token.ToString("sessionKey"));
            shareTicket = API.GetEncryptedData(encryptedData, token.ToString("sessionKey"), iv);
        }
        if (shareTicket.IsNull("openGId"))
        {
            if (token.ToInt("clientId") != fromClientId)
            {
                ClientRelateData.Create(token.ToInt("clientId"), fromClientId, RelateType.FromFriend);
                ClientRelateData.Create(fromClientId, token.ToInt("clientId"), RelateType.FromFriend);
            }
        }
        else
        {
            ClientGroupData.Create(token.ToInt("clientId"), shareTicket.ToString("openGId"));
            ClientGroupData.Renovate(shareTicket.ToString("openGId"));
        }
        return(new Hash((int)CodeType.OK, "成功", shareTicket));
    }
Пример #3
0
        /// <summary>
        /// 新增client日志
        /// </summary>
        /// <param name="sessionId"></param>
        /// <param name="clientModel"></param>
        /// <param name="description"></param>
        /// <returns></returns>
        public static ClientLogEntity clientLoginLog(string sessionId, ClientModel clientModel, string description)
        {
            UserModel user = UserUtils.Provider.GetUser(sessionId);

            ClientLogService clientLogService = new ClientLogService();
            ClientLogEntity  log = new ClientLogEntity();

            log.Create();
            log.CasLogId = user.CasLogId;

            log.AppId   = clientModel.ClientId;
            log.AppName = clientModel.ClientName;
            log.AppUrl  = clientModel.ClientUrl;

            log.ST             = clientModel.Ticket;
            log.STValidated    = clientModel.TicketValidated;
            log.STCreateTime   = clientModel.TicketCreateTime;
            log.STEFTime       = clientModel.TicketEFTime;
            log.STValidateTime = clientModel.TicketValidateTime;

            log.SESSIONID   = UserUtils.Provider.getCurrentSession();
            log.Description = description;

            return(clientLogService.Save(log) ? log : null);
        }
Пример #4
0
        /// <summary>
        /// 退出时修改client日志
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public static bool clientLogoutLog(ClientModel client)
        {
            try
            {
                ClientLogService clientLogService = new ClientLogService();
                ClientLogEntity  log = clientLogService.GetClientLog(client.ClientLogId);

                log.LogStatus  = 0;
                log.LogoutTime = DateTime.Now;

                return(clientLogService.Update(log));
            }
            catch (Exception ex)
            {
                LogUtils.myError(log, ex);
                return(false);
            }
        }
Пример #5
0
 public ClientLogController()
 {
     _LogService = new ClientLogService();
 }