示例#1
0
 public void SaveServiceHeader(ServiceHeaders serviceheader)
 {
     if (serviceheader.HeaderId == 0)
     {
         context.ServiceHeaders.Add(serviceheader);
     }
     else
     {
         ServiceHeaders dbentry = context.ServiceHeaders.Find(serviceheader.HeaderId);
         if (dbentry != null)
         {
             dbentry.Category          = serviceheader.Category;
             dbentry.CategoryLabel     = serviceheader.CategoryLabel;
             dbentry.Description       = serviceheader.Description;
             dbentry.HomeCategory      = serviceheader.HomeCategory;
             dbentry.HomeCategoryLabel = serviceheader.HomeCategoryLabel;
             dbentry.ImageUrl          = serviceheader.ImageUrl;
             dbentry.IsActive          = serviceheader.IsActive;
             dbentry.MenuCategory      = serviceheader.MenuCategory;
             dbentry.MenuCategoryLabel = serviceheader.MenuCategoryLabel;
             dbentry.ProductCode       = serviceheader.ProductCode;
             dbentry.ProductName       = serviceheader.ProductName;
             dbentry.ServiceName       = serviceheader.ServiceName;
             dbentry.ServiceLabel      = serviceheader.ServiceLabel;
             dbentry.ServiceUrl        = serviceheader.ServiceUrl;
             dbentry.ServiceParams     = serviceheader.ServiceParams;
             dbentry.ParamsType        = serviceheader.ParamsType;
             dbentry.TimeFormat        = serviceheader.TimeFormat;
         }
     }
     context.SaveChanges();
 }
        public string ServiceUrlFill(ServiceHeaders s, ServiceRequests r)
        {
            string val = s.ServiceUrl;

            switch ((ServiceUrlFiller)s.ParamsType)
            {
            default:
                val += ServiceUrlFill(s.ServiceParams.Trim(), r.MSISDN.Trim(), s.ProductCode.Trim());
                break;

            case ServiceUrlFiller.standard:
                val += ServiceUrlFill(s.ServiceParams.Trim(), r.MSISDN.Trim(), s.ProductCode.Trim(), r.TransactionId.ToString().Replace("-", "").Trim(), s.Description.Trim());
                break;

            case ServiceUrlFiller.multiplex:
                val += ServiceUrlFill(s.ServiceParams, r.MSISDN.Trim(), s.ProductCode.Trim(), r.TransactionId.ToString().Replace("-", "").Trim(), DateTime.Now, s.TimeFormat);
                break;

            case ServiceUrlFiller.nil:
                val += ServiceUrlFill(s.ServiceParams);
                break;

            case ServiceUrlFiller.lone:
                val += ServiceUrlFill(s.ServiceParams, s.ProductCode);
                break;
            }
            new Thread(() =>
            {
                LocalLogger.LogFileWrite(val);
            }).Start();

            return(val);
        }
示例#3
0
        protected async Task <ServiceHeaders> GetServiceHeaders()
        {
            var serviceHeaders = new ServiceHeaders();

            await TryUpdateModelAsync(serviceHeaders, typeof(ServiceHeaders), string.Empty);

            return(serviceHeaders);
        }
示例#4
0
        public ServiceHeaders DeleteServiceHeader(int headerId)
        {
            ServiceHeaders dbentry = context.ServiceHeaders.Find(headerId);

            if (dbentry != null)
            {
                context.ServiceHeaders.Remove(dbentry);
                context.SaveChanges();
            }
            return(dbentry);
        }
        //Chat(code, phone)
        //mns(pid, phone, tid, descr)
        //Voice(msisdn, packid, requestimestamp(timeformat),trasactionid)

        public ReturnMessage Subscribe(int headerId, string ipAddress, string msisdn, bool IsHeaderEnabled = true, string sourceChannel = "Standard")
        {
            ServiceHeaders serv = context.ServiceHeaders.FirstOrDefault(f => f.HeaderId == headerId);

            if (serv != null)
            {
                ServiceRequests req = new ServiceRequests();
                req.HeaderEnabled   = IsHeaderEnabled; //else number was obtained manually -false
                req.MSISDN          = msisdn;
                req.ClientIp        = ipAddress;
                req.ServiceHeaderId = serv.HeaderId;
                req.SourceChannel   = sourceChannel; //Opera
                req.Timestamped     = DateTime.Now;
                req.TransactionId   = Guid.NewGuid();

                SaveServiceRequest(req);


                if (req.RequestId > 0)
                {
                    var reply = "";// new WebClient().DownloadString(ServiceUrlFill(serv, req));/////Need to follow up with return data

                    if (serv.ParamsType == 3 | serv.ParamsType == 4)
                    {
                        //request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                        //request.Method = "POST"; // Doesn't work with "GET"
                        //ASCIIEncoding encoding = new ASCIIEncoding();
                        //byte[] data = encoding.GetBytes(serv.ServiceParams.TrimStart('?'));
                        //request.ContentLength = data.Length;

                        Pop(ServiceUrlFill(serv, req));
                        HttpContext.Current.Session["Param3"] = ServiceUrlFill(serv, req);
                        //request.GetRequestStream().Write(data, 0, data.Length);
                        reply = "OK";
                    }
                    else
                    {
                        HttpContext.Current.Session["Param3"] = null;

                        HttpWebRequest  request  = (HttpWebRequest)WebRequest.Create(ServiceUrlFill(serv, req));
                        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                        using (Stream stream = response.GetResponseStream())
                        {
                            StreamReader reader         = new StreamReader(stream, Encoding.UTF8);
                            String       responseString = reader.ReadToEnd();
                            reply = responseString;
                        }
                    }

                    ServiceResponses rep = new ServiceResponses();
                    new Thread(() =>
                    {
                        LocalLogger.LogFileWrite(reply);
                    }).Start();

                    rep.Description = reply;
                    rep.RequestId   = req.RequestId;
                    var statCode = string.Concat(reply.Take(50));
                    rep.StatusCode  = statCode;
                    rep.Timestamped = DateTime.Now;

                    _IServiceResponseRepository.SaveServiceResponse(rep);

                    new Thread(() =>
                    {
                        LocalLogger.LogFileWrite($"RequestId: {rep.RequestId} - Description: {rep.Description}");
                    }).Start();

                    return(new ReturnMessage()
                    {
                        ID = rep.RequestId,
                        Message = rep.Description,
                        Success = true,
                        Data = rep
                    });
                }
                else
                {
                    return(new ReturnMessage()
                    {
                        Message = "This service does not exist on this platform.",
                        Success = false,
                        Data = serv
                    });
                }
            }
            else
            {
                return(new ReturnMessage()
                {
                    Message = "This service does not exist on this platform.",
                    Success = false,
                    Data = serv
                });
            }
        }