Exemplo n.º 1
0
 public ThreeD_ListModels(Arguments _Arguments) : base(_Arguments, _Arguments.Count == 0)
 {
     if (_Arguments.Count == 0)
     {
         CreatedRequest = new ApiHttpRequest(BaseApiUrl, "/3d/models").Get();
     }
 }
Exemplo n.º 2
0
 public ThreeD_ListGloballySharedModels(Arguments _Arguments) : base(_Arguments, _Arguments.Count == 0)
 {
     if (_Arguments.Count == 0)
     {
         CreatedRequest = new ApiHttpRequest(BaseApiUrl, "/3d/models/globally_shared").Get();
     }
 }
Exemplo n.º 3
0
 public Auth_ListEmailAddresses(Arguments _Arguments) : base(_Arguments, _Arguments.Count == 0)
 {
     if (_Arguments.Count == 0)
     {
         CreatedRequest = new ApiHttpRequest(BaseApiUrl, "/auth/list_registered_email_addresses").Get();
     }
 }
Exemplo n.º 4
0
        public OperationResult Update([FromBody] dynamic request)
        {
            var httpService = new HttpComunicationService();

            if (HttpContext.ExistsSessionKey(request.sessionKey as string) &&
                HttpContext.IsSessionKeyValid(request.sessionKey as string))
            {
                var account = HttpContext.GetAccount(request.sessinKey as string).Deserialize <Account>();

                var _req = new ApiHttpRequest <Server>
                {
                    data = request.data as Server
                };
                var response = httpService
                               .Post <ApiHttpResponse <HttpDataList <Server> > >(webApiUrl + "Servers/Update?ServerID=",
                                                                                 account.Username,
                                                                                 account.Password,
                                                                                 false,
                                                                                 _req);
                return(response.operationResult);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 5
0
        public HttpResponseMessage AccountsList([FromBody] ApiHttpRequest <Dictionary <string, object> > request)
        {
            var filters  = request.data;
            var _context = new QuartzExecutionDataContext();
            var response = new ApiHttpResponse <HttpDataList <Account> >();
            var username = Request.Username();

            try
            {
                //only admin can see accounts
                Action _canProceed = () =>
                {
                    var accounts = _context.Accounts.Filter(filters);
                    response.data.result = accounts.ToList();
                    response.Complete(ResultCode.OK, "");
                };
                Action _else = () => response.Complete(ResultCode.OK, "Only admin and inspector can see Accounts");;

                _context.Accounts
                .Where(x => x.Username == username)
                .SingleOrDefault()
                .ProceedIf(x => x.IsAdminOrIspector, _canProceed, _else);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 6
0
        public IEnumerable <Call> List([FromBody] dynamic request)
        {
            var httpService = new HttpComunicationService();

            if (HttpContext.Current.ExistsSessionKey((string)request.sessionKey, (string)request.accountID) &&
                HttpContext.Current.IsSessionKeyValid((string)request.sessionKey, (string)request.accountID))
            {
                var account = HttpContext.Current.GetAccount((string)request.sessionKey).Deserialize <Account>();

                var _req = new ApiHttpRequest <Dictionary <string, object> >
                {
                    data = ((JObject)request.data) != null ? ((JObject)request.data).ToObject <Dictionary <string, object> >() : new Dictionary <string, object>()
                };
                var response = httpService
                               .Post <ApiHttpResponse <HttpDataList <Call> > >(webApiUrl + "Calls/List",
                                                                               account.Username,
                                                                               account.Password,
                                                                               false,
                                                                               _req);

                if (response.operationResult.Code == HttpUtilities.Enumerators.ResultCode.KO)
                {
                    throw new AngularException(response.operationResult.Message, response.operationResult.Stack);
                }
                return(response.data.result.OrderByDescending(x => x.StartedAt));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 7
0
 public Auth_ListUsers(Arguments _Arguments) : base(_Arguments, _Arguments.Count == 0)
 {
     if (_Arguments.Count == 0)
     {
         CreatedRequest = new ApiHttpRequest(BaseApiUrl, "/auth/users").Get();
     }
 }
Exemplo n.º 8
0
        public HttpResponseMessage CallsList([FromBody] ApiHttpRequest <DbFiltersCollection> request)
        {
            //var filtersString = HttpUtility.ParseQueryString(Request.RequestUri.Query)["filters"];
            //var filters = !string.IsNullOrEmpty(filtersString) ? filtersString.Deserialize<Dictionary<string, object>>() : new Dictionary<string, object>();
            var filters  = request.data;
            var response = new ApiHttpResponse <HttpDataList <Call> >();
            var username = Request.Username();
            var _context = new QuartzExecutionDataContext();

            try
            {
                var account = _context.Accounts
                              .FirstOrDefault(x => x.Username == username);
                var dbCalls = (from ser in _context.Servers
                               join job in _context.Jobs on ser.ServerID equals job.ServerID
                               join cal in _context.Calls on job.JobID equals cal.JobID
                               join accser in _context.AccountServers on ser.ServerID equals accser.ServerID
                               join acc in _context.Accounts on accser.AccountID equals acc.AccountID
                               where (acc.Username == username && account.Roles == RoleType.Client) ||
                               (account.Roles == RoleType.Admin || account.Roles == RoleType.Inspector)
                               select cal)
                              .Distinct()
                              .Filter(filters);
                response.data.result = dbCalls.ToList();
                response.Complete(ResultCode.OK, "");
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 9
0
        public IEnumerable <Server> List([FromBody] dynamic request)
        {
            var httpService = new HttpComunicationService();

            if (HttpContext.ExistsSessionKey(request.sessionKey as string) &&
                HttpContext.IsSessionKeyValid(request.sessionKey as string))
            {
                var account = HttpContext.GetAccount(request.sessinKey as string).Deserialize <Account>();

                var _req = new ApiHttpRequest <Dictionary <string, object> >
                {
                    data = request.data as Dictionary <string, object>
                };
                var response = httpService
                               .Post <ApiHttpResponse <HttpDataList <Server> > >(webApiUrl + "Servers/List",
                                                                                 account.Username,
                                                                                 account.Password,
                                                                                 false,
                                                                                 _req);

                if (response.operationResult.Code == HttpUtilities.Enumerators.ResultCode.KO)
                {
                    throw new AngularException(response.operationResult.Message, response.operationResult.Stack);
                }
                return(response.data.result);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 10
0
        public HttpResponseMessage CallStart([FromUri] string jobKey, [FromBody] ApiHttpRequest <Call> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <bool> >();
            var call     = request.data;
            var _context = new QuartzExecutionDataContext();

            try
            {
                var appID    = Request.Username();
                var appToken = Request.Password();
                var dbServer = _context.Servers
                               .FirstOrDefault(x => x.AppId == appID && x.AppToken == appToken);

                if (dbServer != null)
                {
                    var dbJob = dbServer.Jobs.FirstOrDefault(x => x.Key == jobKey);
                    if (dbJob != null)
                    {
                        dbJob.Calls.Add(call);
                        dbJob.Executing = true;
                        _context.SaveChanges();
                        response.data.result = true;
                        response.Complete(ResultCode.OK, "");

                        try
                        {
                            WebSocketClient.SendMessage(new SocketMessage
                            {
                                Title       = "Job " + call.Job?.Key + " in esecuzione con instance ID : " + call.FireInstenceID,
                                DataType    = call.GetType(),
                                IsImportant = false,
                                Data        = call
                            });
                        }
                        catch (Exception ex) { LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex); }
                    }
                    else
                    {
                        throw new EntityNotExistsException("Job with key " + jobKey + " not exists");
                    }
                }
                else
                {
                    throw new EntityNotExistsException("Server with key " + Request.Username() + " not exists");
                }
            }
            catch (EntityNotExistsException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Warning(System.Net.HttpStatusCode.NotFound, ex.Message);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 11
0
        public ApiRequest(ApiRequestSettings requestSettings)
        {
            if (requestSettings == null)
              {
            throw new ArgumentNullException("requestSettings");
              }

              this.requestSettings = requestSettings;
              this.apiHttpRequester = new ApiHttpRequest(requestSettings);
        }
Exemplo n.º 12
0
        public HttpResponseMessage Add([FromUri] long accountID, [FromBody]  ApiHttpRequest <Server> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <Server> >();
            var server   = request.data;
            var username = Request.Username();

            var _context = new QuartzExecutionDataContext();

            try
            {
                /* only admin and inspector can add clients */
                Action _canProceed = () =>
                {
                    var account = _context.Accounts
                                  .SingleOrDefault(x => x.AccountID == accountID);

                    if (account != null)
                    {
                        if (_context.Servers.FirstOrDefault(x => x.Name == server.Name && x.IP == server.IP) == null)
                        {
                            /*_context.Servers.Add(server);*/
                            account.Servers.Add(server);
                            _context.SaveChanges();
                            response.data.result = _context.Servers.FirstOrDefault(x => x.Name == server.Name && x.IP == server.IP);
                            response.Complete(ResultCode.OK, "Server succefully added");
                        }
                        else
                        {
                            throw new EntityDuplicationException("Already exists server with name: " + server.Name + " and ip: " + server.IP);
                        }
                    }
                    else
                    {
                        throw new EntityNotExistsException("No account exists for id: " + accountID);
                    }
                };
                Action _else = () => response.Complete(ResultCode.OK, "Only admin and inspector can add servers");
                _context.Accounts
                .Where(x => x.Username == username)
                .SingleOrDefault()
                .ProceedIf(x => x.IsAdminOrIspector, _canProceed, _else);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 13
0
        public HttpResponseMessage JobsList([FromBody] ApiHttpRequest <Dictionary <string, object> > request)
        {
            //var filtersString = HttpUtility.ParseQueryString(Request.RequestUri.Query)["filters"];
            //var filters = !string.IsNullOrEmpty(filtersString) ? filtersString.Deserialize<Dictionary<string, object>>() : new Dictionary<string, object>();
            var filters = request.data;

            var response = new ApiHttpResponse <HttpDataList <dynamic> >();
            var username = Request.Username();
            var _context = new QuartzExecutionDataContext();

            try
            {
                var account = _context.Accounts
                              .FirstOrDefault(x => x.Username == username);
                var jobs = (from ser in _context.Servers
                            join job in _context.Jobs on ser.ServerID equals job.ServerID
                            join accser in _context.AccountServers on ser.ServerID equals accser.ServerID
                            join acc in _context.Accounts on accser.AccountID equals acc.AccountID
                            where (acc.Username == username && account.Roles == RoleType.Client) ||
                            (account.Roles == RoleType.Admin || account.Roles == RoleType.Inspector)
                            select new {
                    JobID = job.JobID,
                    Key = job.Key,
                    Description = job.Description,
                    Executing = job.Executing,
                    ServerID = job.ServerID,
                    StartedAt = job.StartedAt,
                    IsExecutingCorrectly = DateTime.Now <= DbFunctions.AddMinutes(job.Calls.OrderByDescending(x => x.EndedAt).FirstOrDefault().NextStart, 1),
                    LastCall = job.Calls.OrderByDescending(x => x.EndedAt).FirstOrDefault()
                })
                           .Distinct()
                           .Filter(filters)
                           .OrderByDescending(x => x.LastCall.StartedAt);


                //var jobList = jobs?
                //    .OrderByDescending(x => x.LastCall.StartedAt);
                //jobList.ForEach(x => x.Calls.Take(1));
                response.data.result = jobs.ToList <dynamic>();
                response.Complete(ResultCode.OK, "");
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 14
0
        public HttpResponseMessage UpdateJob([FromBody] ApiHttpRequest <Job> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <Job> >();
            var job      = request.data;
            var username = Request.Username();
            var _context = new QuartzExecutionDataContext();

            try
            {
                var appID    = Request.Username();
                var appToken = Request.Password();
                var dbServer = _context.Servers
                               .FirstOrDefault(x => x.AppId == appID && x.AppToken == appToken);

                if (dbServer != null)
                {
                    var dbJob = dbServer.Jobs.FirstOrDefault(x => x.Key == job.Key);
                    if (dbJob != null)
                    {
                        dbJob.StartedAt = job.StartedAt;
                        dbJob.Executing = job.Executing;
                        _context.SaveChanges();
                        response.Complete(ResultCode.OK, "");
                    }
                    else
                    {
                        throw new EntityNotExistsException(job.Key);
                    }
                    response.data.result = dbServer.Jobs.FirstOrDefault(x => x.Key == job.Key);
                }
                else
                {
                    throw new EntityNotExistsException("Client with key " + Request.Username() + " not exists");
                }
            }
            catch (EntityNotExistsException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Warning(System.Net.HttpStatusCode.NotFound, ex.Message);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 15
0
        public HttpResponseMessage Delete([FromBody] ApiHttpRequest <Server> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <bool> >();
            var server   = request.data;
            var username = Request.Username();

            var _context = new QuartzExecutionDataContext();

            try
            {
                /* only admin and inspector can delete clients */
                Action _canProceed = () =>
                {
                    var dbClient = _context.Servers.FirstOrDefault(x => x.Name == server.Name && x.IP == server.IP);
                    if (dbClient != null)
                    {
                        _context.Servers.Remove(dbClient);
                        _context.SaveChanges();
                        response.data.result = true;
                        response.Complete(ResultCode.OK, "Client succefully Deleted");
                    }
                    else
                    {
                        throw new EntityNotExistsException("Not exists Client with Name " + server.Name + " and ip " + server.IP);
                    }
                };
                Action _else = () => response.Complete(ResultCode.OK, "Only admin and inspector can delete clients");
                _context.Accounts
                .Where(x => x.Username == username)
                .SingleOrDefault()
                .ProceedIf(x => x.IsAdminOrIspector, _canProceed, _else);
            }
            catch (EntityNotExistsException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Warning(System.Net.HttpStatusCode.NotFound, ex.Message);
            }
            catch (Exception ex1)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex1.Message, ex1);
                response.Fault(ex1);
            }

            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 16
0
        public void Error(IJobExecutionContext jobContext, Exception ex)
        {
            try
            {
                var httpService = CastleWindsorService.Resolve <HttpComunicationService>();

                var err = new Error
                {
                    Message    = ex.Message,
                    StackTrace = ex.StackTrace
                };

                var call = new Call
                {
                    FireInstenceID = jobContext.FireInstanceId,
                    EndedAt        = DateTime.Now,
                    Error          = err
                };


                var req = new ApiHttpRequest <Call>
                {
                    AppID    = AppId,
                    AppToken = AppToken,
                    data     = call
                };
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), "Calling API: " + Endpoint + "/Calls/End with body: " + req.Stringify());
                var resp = httpService.Post <ApiHttpResponse <HttpDataSingle <bool> > >(Endpoint + "/Calls/End?jobKey=" + GetJobKey(jobContext.JobDetail), AppId, AppToken, false, req);
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), "response " + resp.Stringify());
                if (resp.Code != System.Net.HttpStatusCode.OK)
                {
                    throw new HttpCommunicationException(resp.operationResult.Code + " : " + resp.operationResult.Message + "  -> " + resp.operationResult.Stack);
                }
                else
                {
                    LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(),
                                                        "Http Comunication 'Call Ended with Error' for job" + jobContext.JobDetail.Key.Name + " to Endpoint : " + Endpoint + " exit with code " + resp.Code.ToString() + " returns message " + resp.operationResult.Message);
                }
            }
            catch (Exception ex1)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex1);
            }
        }
Exemplo n.º 17
0
        public CallPerHourResponse ErrorPerHour([FromUri] string sessionKey, [FromUri] string accountID)
        {
            var response    = new CallPerHourResponse();
            var httpService = new HttpComunicationService();

            if (HttpContext.Current.ExistsSessionKey(sessionKey, accountID) &&
                HttpContext.Current.IsSessionKeyValid(sessionKey, accountID))
            {
                var account = HttpContext.Current.GetAccount(sessionKey).Deserialize <Account>();
                var _req    = new ApiHttpRequest <Dictionary <string, object> >
                {
                    data = new Dictionary <string, object>()
                };

                var _resCalls = httpService
                                .Post <ApiHttpResponse <HttpDataList <Call> > >(webApiUrl + "calls/List",
                                                                                account.Username,
                                                                                account.Password,
                                                                                false,
                                                                                _req);

                if (_resCalls.operationResult.Code == HttpUtilities.Enumerators.ResultCode.KO)
                {
                    throw new AngularException(_resCalls.operationResult.Message, _resCalls.operationResult.Stack);
                }
                response.data = (from call in _resCalls.data.result
                                 where call.Error != null &&
                                 call.StartedAt >= DateTime.Today
                                 group call by call.StartedAt.Hour into cals
                                 select new CallPerHour
                {
                    calls = cals.Count(),
                    hour = cals.Key
                }).ToList();

                return(response);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 18
0
        public HttpResponseMessage Update([FromUri] long serverID, [FromBody] ApiHttpRequest <Server> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <Server> >();
            var server   = request.data;
            var username = Request.Username();

            var _context = new QuartzExecutionDataContext();

            try
            {
                /* only admin and inspector can update clients */
                Action _canProceed = () =>
                {
                    var dbClient = _context.Servers.FirstOrDefault(x => x.ServerID == serverID);
                    if (dbClient != null)
                    {
                        dbClient.Name     = server.Name;
                        dbClient.IP       = server.IP;
                        dbClient.AppId    = string.Empty;
                        dbClient.AppToken = string.Empty;
                        _context.SaveChanges();
                        response.data.result = dbClient;
                        response.Complete(ResultCode.OK, "Server succefully Updated");
                    }
                    else
                    {
                        throw new EntityNotExistsException("Not exists server with Name " + server.Name + " and ip " + server.IP);
                    }
                };
                Action _else = () => response.Complete(ResultCode.OK, "Only admin and inspector update add clients");
                _context.Accounts
                .Where(x => x.Username == username)
                .SingleOrDefault()
                .ProceedIf(x => x.IsAdminOrIspector, _canProceed, _else);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 19
0
        public HttpResponseMessage Add([FromBody] ApiHttpRequest <Account> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <bool> >();
            var username = Request.Username();
            var account  = request.data;
            var _context = new QuartzExecutionDataContext();

            try
            {
                Action _canProceed = () =>
                {
                    var dbAccount = _context.Accounts.Where(x => x.Username == account.Username).SingleOrDefault();
                    if (dbAccount == null)
                    {
                        _context.Accounts.Add(account);
                        _context.SaveChanges();
                    }
                    else
                    {
                        throw new EntityDuplicationException("Account alredy exists with username " + account.Username);
                    }
                };
                Action _else = () => response.Complete(ResultCode.OK, "Only admin and inspector can see Accounts");

                _context.Accounts.
                Where(x => x.Username == username)
                .SingleOrDefault()
                .ProceedIf(x => x.IsAdminOrIspector, _canProceed, _else);
            }
            catch (EntityDuplicationException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Complete(ResultCode.OK, ex.Message);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 20
0
        public Auth_LoginOther(Arguments _Arguments, Auth_Login.ELoginType _LoginType)
            : base(_Arguments, true)
        {
            CreatedRequest = new ApiHttpRequest(BaseApiUrl, "/auth/login");

            var Request = new JObject();

            if (_LoginType == Auth_Login.ELoginType.ApiKey)
            {
                Request["apiKey"] = (_Arguments.First.Value as BinaryArgument).Value;
            }
            else if (_LoginType == Auth_Login.ELoginType.EmailPasswordMD5)
            {
                Request["userEmail"]   = (_Arguments.First.Value as BinaryArgument).Value;
                Request["passwordMd5"] = (_Arguments.First.Next.Value as BinaryArgument).Value;
            }
            else if (_LoginType == Auth_Login.ELoginType.UsernamePasswordMD5)
            {
                Request["userName"]    = (_Arguments.First.Value as BinaryArgument).Value;
                Request["passwordMd5"] = (_Arguments.First.Next.Value as BinaryArgument).Value;
            }
            CreatedRequest.Post(Request);
        }
Exemplo n.º 21
0
 public void AddJob(IJobDetail jobDetail)
 {
     try
     {
         var httpService = CastleWindsorService.Resolve <HttpComunicationService>();
         var job         = new Job
         {
             Key         = GetJobKey(jobDetail),
             Executing   = false,
             StartedAt   = DateTime.Parse("01/01/1753"),
             Description = jobDetail.Description
         };
         var req = new ApiHttpRequest <Job>
         {
             AppID    = AppId,
             AppToken = AppToken,
             data     = job
         };
         LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), "Calling API: " + Endpoint + "/Jobs/Add with body: " + req.Stringify());
         var resp = httpService.Post <ApiHttpResponse <HttpDataSingle <long> > >(Endpoint + "/Jobs/Add", AppId, AppToken, false, req);
         LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), "response " + resp.Stringify());
         if (resp.Code != System.Net.HttpStatusCode.OK)
         {
             throw new HttpCommunicationException(resp.operationResult.Code + " : " + resp.operationResult.Message + "  -> " + resp.operationResult.Stack);
         }
         else
         {
             LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(),
                                                 "Http Comunication 'Job Add' for job" + jobDetail.Key.Name + " to Endpoint : " + Endpoint + " exit with code " + resp.Code.ToString() + " returns message " + resp.operationResult.Message);
         }
     }
     catch (Exception ex)
     {
         LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
     }
 }
Exemplo n.º 22
0
        public Models.Last20CallResponse Last20Call([FromUri] string sessionKey, string accountID)
        {
            Last20CallResponse response = new Last20CallResponse();
            var httpService             = new HttpComunicationService();

            if (HttpContext.Current.ExistsSessionKey((string)sessionKey, (string)accountID) &&
                HttpContext.Current.IsSessionKeyValid((string)sessionKey, (string)accountID))
            {
                var account = HttpContext.Current.GetAccount((string)sessionKey).Deserialize <Account>();

                var _req = new ApiHttpRequest <DbFiltersCollection>
                {
                    data = new DbFiltersCollection
                    {
                        new DbTop {
                            Number = 10
                        },
                        new DbFilter {
                            PropertyName = "StartedAt", Sign = CompareSign.GreaterEquals, Value = DateTime.Now.SetMidnight()
                        }
                    }
                };

                var _resCalls = httpService
                                .Post <ApiHttpResponse <HttpDataList <Call> > >(webApiUrl + "calls/List",
                                                                                account.Username,
                                                                                account.Password,
                                                                                false,
                                                                                _req);

                if (_resCalls.operationResult.Code == HttpUtilities.Enumerators.ResultCode.KO)
                {
                    throw new AngularException(_resCalls.operationResult.Message, _resCalls.operationResult.Stack);
                }

                _req = new ApiHttpRequest <DbFiltersCollection>
                {
                    data = new DbFiltersCollection
                    {
                        new DbTop {
                            Number = 10
                        },
                        new DbFilter {
                            PropertyName = "StartedAt", Sign = CompareSign.GreaterEquals, Value = DateTime.Now.SetMidnight()
                        },
                        new DbFilter {
                            PropertyName = "Error", Sign = CompareSign.NotEquals, Value = null
                        }
                    }
                };

                var _errorCalls = httpService
                                  .Post <ApiHttpResponse <HttpDataList <Call> > >(webApiUrl + "calls/List",
                                                                                  account.Username,
                                                                                  account.Password,
                                                                                  false,
                                                                                  _req);

                if (_resCalls.operationResult.Code == HttpUtilities.Enumerators.ResultCode.KO)
                {
                    throw new AngularException(_resCalls.operationResult.Message, _resCalls.operationResult.Stack);
                }

                response.Last10Calls       = _resCalls.data.result.OrderByDescending(x => x.StartedAt); //.Take(10).ToList();
                response.Last10ErrorsCalls = _resCalls.data.result.OrderByDescending(x => x.StartedAt); //.Where(x => x.Error != null).Take(10).ToList();

                return(response);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 23
0
        public HttpResponseMessage CallEnd([FromUri] string jobKey, [FromBody] ApiHttpRequest <Call> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <bool> >();
            var call     = request.data;
            var _context = new QuartzExecutionDataContext();

            try
            {
                var appID    = Request.Username();
                var appToken = Request.Password();
                var dbServer = _context.Servers
                               .FirstOrDefault(x => x.AppId == appID && x.AppToken == appToken);

                if (dbServer != null)
                {
                    var dbCall = (from job in dbServer.Jobs
                                  join cal in _context.Calls on job.JobID equals cal.JobID
                                  where job.Key == jobKey &&
                                  cal.FireInstenceID == call.FireInstenceID
                                  select cal
                                  ).FirstOrDefault();
                    if (dbCall != null)
                    {
                        dbCall.EndedAt       = call.EndedAt;
                        dbCall.Error         = call.Error;
                        dbCall.Job.Executing = false;
                        _context.SaveChanges();
                        response.data.result = true;
                        response.Complete(ResultCode.OK, "");
                        try
                        {
                            WebSocketClient.SendMessage(new SocketMessage
                            {
                                Title       = "Job " + dbCall.Job?.Key + " terminato con instance ID : " + call.FireInstenceID,
                                DataType    = call.GetType(),
                                IsImportant = call.Error != null,
                                Data        = call
                            });
                        }
                        catch (Exception ex) { LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex); }
                    }
                    else
                    {
                        throw new EntityNotExistsException("Call with fire instance id " + call.FireInstenceID + " not exists");
                    }
                }
                else
                {
                    throw new EntityNotExistsException("Client with key " + Request.Username() + " not exists");
                }
            }
            catch (EntityNotExistsException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Warning(System.Net.HttpStatusCode.NotFound, ex.Message);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
Exemplo n.º 24
0
 public Auth_LoginOther(Arguments _Arguments)
     : base(_Arguments, true)
 {
     CreatedRequest = new ApiHttpRequest(BaseApiUrl, "/auth/login");
 }
Exemplo n.º 25
0
        public HttpResponseMessage AddJob([FromBody] ApiHttpRequest <Job> request)
        {
            var response = new ApiHttpResponse <HttpDataSingle <long> >();
            var job      = request.data;
            var _context = new QuartzExecutionDataContext();

            try
            {
                var appID    = Request.Username();
                var appToken = Request.Password();
                var dbServer = _context.Servers
                               .FirstOrDefault(x => x.AppId == appID && x.AppToken == appToken);

                if (dbServer != null)
                {
                    if (dbServer.Jobs.FirstOrDefault(x => x.Key.ToLower() == job.Key.ToLower()) == null)
                    {
                        job.Server   = dbServer;
                        job.ServerID = dbServer.ServerID;
                        _context.Jobs.Add(job);
                        _context.SaveChanges();
                        response.Complete(ResultCode.OK, "");

                        try
                        {
                            WebSocketClient.SendMessage(new SocketMessage
                            {
                                Title       = "Nuovo Job " + job.Key + " per server " + job.Server?.Name,
                                DataType    = job.GetType(),
                                IsImportant = false,
                                Data        = job
                            });
                        }
                        catch (Exception ex) { LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex); }
                    }
                    else
                    {
                        throw new EntityDuplicationException("Job alredy exists with key " + job.Key);
                    }
                    response.data.result = dbServer.Jobs.FirstOrDefault(x => x.Key == job.Key).JobID;
                }
                else
                {
                    throw new EntityNotExistsException("Client with key " + Request.Username() + " not exists");
                }
            }
            catch (EntityDuplicationException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Complete(ResultCode.OK, ex.Message);
            }
            catch (EntityNotExistsException ex)
            {
                LogsAppendersManager.Instance.Debug(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message);
                response.Warning(System.Net.HttpStatusCode.NotFound, ex.Message);
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }