Inheritance: NetworkBehaviour
Ejemplo n.º 1
0
 public Yield GetCommentContent(DreamContext context, DreamMessage request, Result<DreamMessage> response) {
     PageBE page = null;
     CommentBE comment = null;
     GetCommentFromRequest(context, Permissions.READ, out page, out comment);
     response.Return(DreamMessage.Ok(new MimeType(comment.ContentMimeType), comment.Content));
     yield break;
 }
        private void ImageChooserCallback(int requestCode, Result resultCode, Intent intent)
        {
            if (resultCode == Result.Ok)
            {
                if (ImageSelected != null)
                {
                    Android.Net.Uri uri = intent.Data;
                    if (ImageSelected != null)
                    {
                        ImageSource imageSource = ImageSource.FromStream(() => Forms.Context.ContentResolver.OpenInputStream(uri));
                        ImageSelected.Invoke(this, new ImageSourceEventArgs(imageSource));

                        string doc_id = "";
                        using (var c1 = Forms.Context.ContentResolver.Query (uri, null, null, null, null)) {
                            c1.MoveToFirst ();
                            string document_id = c1.GetString (0);
                            doc_id = document_id.Substring (document_id.LastIndexOf (":") + 1);
                        }

                        string selection = Android.Provider.MediaStore.Images.Media.InterfaceConsts.Id + " =? ";
                        var cursor = Forms.Context.ContentResolver.Query (MediaStore.Images.Media.ExternalContentUri, null, selection, new string[] {doc_id}, null);
                        var colIndex = cursor.GetColumnIndex(Android.Provider.MediaStore.Images.Media.InterfaceConsts.Data);
                        cursor.MoveToFirst();
                        App.imagePath = cursor.GetString (colIndex);
                        cursor.Close ();

                    }
                }
            }
        }
Ejemplo n.º 3
0
    public static Result SetSessionByExamList()
    {
        ExamBO oExamBO = new ExamBO();
        Result oResult = new Result();

        List<Exam> oListExam = new List<Exam>();

        try
        {
            oResult = oExamBO.ExamGetFromDatabaseForSetSession();

            if (oResult.ResultIsSuccess)
            {
                oListExam = (List<Exam>)oResult.ResultObject;

                Utils.SetSession(SessionManager.csStoredExam, oListExam);
            }
        }
        catch (Exception oEx)
        {
            oResult.ResultIsSuccess = false;
            oResult.ResultException = oEx;
            oResult.ResultMessage = "Exception occured during Set Session By ExamList.";
        }

        return oResult;
    }
        public void OnSpecificationEnd(SpecificationInfo specification, Result result)
        {
            if (listenFor != null && !listenFor.Equals(specification.ToVisualStudioTestIdentifier(currentContext)))
                return;

            runListener.OnSpecificationEnd(specification, result);
        }
Ejemplo n.º 5
0
        private void button1_Click(object sender, EventArgs e)
        {
         
            //bdl ma ad5l el input kol shwia
/*
            Recognetion r = new Recognetion(600, 600,
            100.ToString(), 110.ToString(), 120.ToString(), 0.7.ToString(), 0.4.ToString(), 0.3.ToString(),
            230.ToString(), 20.ToString(), 20.ToString(), 0.1.ToString(), 0.2.ToString(), 0.6.ToString(),
            210.ToString(), 230.ToString(), 190.ToString(), 0.5.ToString(), 0.4.ToString(), 0.3.ToString(),
            40.ToString(), 10.ToString(), 30.ToString(), 0.4.ToString(), 0.2.ToString(), 0.1.ToString()

            );

           */

            Recognetion r = new Recognetion(Convert.ToInt32(textBox1.Text),Convert.ToInt32(textBox2.Text),
           textBox3.Text, textBox5.Text, textBox7.Text, textBox4.Text, textBox6.Text, textBox8.Text,
          textBox20.Text, textBox18.Text, textBox16.Text, textBox19.Text, textBox17.Text, textBox15.Text,
           textBox14.Text, textBox12.Text, textBox10.Text, textBox13.Text, textBox11.Text, textBox9.Text,
           textBox26.Text, textBox24.Text, textBox22.Text, textBox25.Text, textBox23.Text, textBox21.Text);

            Result frm = new Result(r);
            frm.Show();
          
        }
Ejemplo n.º 6
0
 public Result Method3()
 {
     Result result = new Result();
     result.State = true;
     result.Message = "Test Message";
     return result;
 }
        public Result LoadQuestionsForACandidateInExam(CandidateForExam oCandidateForExam)
        {
            //new CLogger("Start LoadQuestionsForACandidateInExam CandidateExamProcessBO+BO", FileNameManagerInDLL.sLogFileName, 1).WriteLog("Start LoadQuestionsForACandidateInExam CandidateExamProcessBO+BO", ELogLevel.Debug);

            Result oResult = new Result();

            CandidateExamProcessDAO oCandidateExamProcessDAO = new CandidateExamProcessDAO();

            try
            {
                oResult = oCandidateExamProcessDAO.LoadQuestionsForACandidateInExam(oCandidateForExam);
            }
            catch (Exception oEx)
            {
                oResult.ResultIsSuccess = false;
                oResult.ResultMessage = "Exception in Question Load For an Exam..";
                oResult.ResultException = oEx;

                //new CLogger("Exception LoadQuestionsForACandidateInExam CandidateExamProcessBO+BO", FileNameManagerInDLL.sLogFileName, 1).WriteLog("Exception LoadQuestionsForACandidateInExam CandidateExamProcessBO+BO", ELogLevel.Debug, oEx);
            }

            //new CLogger("Out LoadQuestionsForACandidateInExam CandidateExamProcessBO+BO", FileNameManagerInDLL.sLogFileName, 1).WriteLog("Out LoadQuestionsForACandidateInExam CandidateExamProcessBO+BO", ELogLevel.Debug);

            return oResult;
        }
Ejemplo n.º 8
0
        public Yield Invoke(Plug plug, string verb, XUri uri, DreamMessage request, Result<DreamMessage> response)
        {
            // NOTE (steveb): we convert 'xri://@name/path?params' into 'http://xri.net/@name/path?params'

            // prepend segments with authority
            List<string> segments = new List<string>();
            segments.Add(uri.Authority);
            if(uri.Segments != null) {
                segments.AddRange(uri.Segments);
            }

            // build new plug
            List<PlugHandler> preHandlers = (plug.PreHandlers != null) ? new List<PlugHandler>(plug.PreHandlers) : null;
            List<PlugHandler> postHandlers = (plug.PostHandlers != null) ? new List<PlugHandler>(plug.PostHandlers) : null;
            Plug xri = new Plug(new XUri("http", null, null, "xri.net", 80, segments.ToArray(), uri.TrailingSlash, uri.Params, uri.Fragment), plug.Timeout, request.Headers, preHandlers, postHandlers, plug.Credentials, plug.CookieJar, plug.MaxAutoRedirects);

            // add 'Accept' header for 'application/xrds+xml' mime-type
            if((xri.Headers == null) || (xri.Headers.Accept == null)) {
                xri = xri.WithHeader(DreamHeaders.ACCEPT, MimeType.RenderAcceptHeader(MimeType.XRDS));
            }

            // BUGBUGBUG (steveb): this will probably fail in some cases since we may exit this coroutine before the call has completed!

            xri.InvokeEx(verb, request, response);
            yield break;
        }
        public Result UpdateAccount(Account account, bool deleteAccount)
        {
            IList<Account> accounts = GetAccounts().ToList();
            var result = new Result()
            {
                Activity = deleteAccount ? "Delete Account" : "Update Account"
            };
            if (accounts.Count > 0 && accounts.All(x => x != null))
            {
                if (deleteAccount)
                {
                    accounts.Remove(accounts.FirstOrDefault(x => x.UserName == account.UserName));
                }
                else
                {
                    accounts.Remove(accounts.FirstOrDefault(x => x.UserName == account.UserName));
                    accounts.Add(account);
                    result.Account = account;
                }

                using (TextWriter writer = new StreamWriter(_FileName))
                {
                    _Serializer.Serialize(writer, accounts.ToArray());
                }

                result.IsSuccessful = true;
            }
            else
            {
                result.IsSuccessful = false;
                result.Reason = "Xml did not return any accounts.";
            }

            return result;
        }
Ejemplo n.º 10
0
    public void GetData(IRequest request)
    {
        int numberToDisplay = 5;

        Sage.SalesLogix.Security.SLXUserService slxUserService = ApplicationContext.Current.Services.Get<Sage.Platform.Security.IUserService>() as Sage.SalesLogix.Security.SLXUserService;
        string currentUserId = slxUserService.GetUser().Id.ToString();
        IRepository<IOpportunity> oRep = EntityFactory.GetRepository<IOpportunity>();
        IExpressionFactory ep = ((IQueryable)oRep).GetExpressionFactory();
        ICriteria countCrit = GetOpenOppCrit(oRep, ep, currentUserId);
        countCrit.SetProjection(((IQueryable)oRep).GetProjectionsFactory().RowCount());
        int totalCount = Convert.ToInt32(countCrit.UniqueResult());

        ICriteria crit = GetOpenOppCrit(oRep, ep, currentUserId);
        crit.AddOrder(ep.Asc("EstimatedClose"));
        crit.SetMaxResults(numberToDisplay);
        IList<IOpportunity> opps = crit.List<IOpportunity>();
        numberToDisplay = (totalCount < numberToDisplay) ? totalCount : numberToDisplay;

        var result = new Result();
        result.items = new List<OpportunityRepresentation>();
        result.columns = new string[] { "id", "description", "estClose", "potential", "probability", "stage", "nextStep", "nextActivityId", "nextActivityName", "daysInStage", "daysSinceLastActivity" };
        for (int i = 0; i < numberToDisplay; i++)
        {
            result.items.Add(OpportunityRepresentation.from(opps[i]));
        }
        string groupId = GetPluginIdFromFamilyAndName("Opportunity", "My Open Opps");
        int groupCount = totalCount;
        result.openOppGroup = groupId;
        result.openOppCount = groupCount;
        result.numberToDisplay = numberToDisplay;

        request.Response.ContentType = MediaType.JSON;
        request.Response.Html = JavaScriptConvert.SerializeObject(result);
    }
Ejemplo n.º 11
0
 void AdminWindow_OnBeforeDisplayAdminWindowOverlay(Result result)
 {
     if(WebAuthentication.IsLoggedIn)
         if(WebAuthentication.VerifyAccess(PermissionType.AdministrativeAccess))
             return;
     result.SetFailed("access denied");
 }
        public void OnSpecificationEnd(SpecificationInfo specification, Result result)
        {
            var formatter = resultFormatterFactory.GetResultFormatterFor(result);
            testListener.WriteLine(formatter.FormatResult(specification), Category.Output);

            var testResult = new TestResult();
            testResult.Name = specification.Name;
            if (result.Passed)
                testResult.State = TestState.Passed;
            else if (result.Status == Status.Ignored)
            {
                testResult.State = TestState.Ignored;
                testResult.Message = "Ignored";
            }
            else if (result.Status == Status.NotImplemented)
            {
                testResult.State = TestState.Ignored;
                testResult.Message = "Not Implemented";
            }
            else
            {
                testResult.State = TestState.Failed;
                if (result.Exception != null)
                    testResult.StackTrace = result.Exception.ToString();
            }

            testResults.Add(testResult);
        }
Ejemplo n.º 13
0
        private Result ParseResult(string line)
        {
            string[] parts = line.Split(new[] { ',' }, StringSplitOptions.None);

            if (parts.Length != 12)
            {
                throw new InvalidOperationException("CSV file has invalid format. Please delete CSV first.");
            }

            var result = new Result();

            result.Name = parts[0];
            result.Version = parts[1];

            result.SingletonTime = long.Parse(parts[2]);
            result.TransientTime = long.Parse(parts[3]);
            result.CombinedTime = long.Parse(parts[4]);
            result.ComplexTime = long.Parse(parts[5]);

            result.PropertyInjectionTime = parts[6] == "0" ? (long?)null : long.Parse(parts[6]);
            result.GenericTime = parts[7] == "0" ? (long?)null : long.Parse(parts[7]);
            result.MultipleImport = parts[8] == "0" ? (long?)null : long.Parse(parts[8]);
            result.ConditionalTime = parts[9] == "0" ? (long?)null : long.Parse(parts[9]);
            result.ChildContainerTime = parts[10] == "0" ? (long?)null : long.Parse(parts[10]);
            result.InterceptionTime = parts[11] == "0" ? (long?)null : long.Parse(parts[11]);

            return result;
        }
Ejemplo n.º 14
0
 public ResultPage(Result r)
 {
     InitializeComponent();
     currentResult = r;
     timer.Tick += new EventHandler(hideSaved);
     timer.Interval = new TimeSpan(0, 0, 1);
 }
Ejemplo n.º 15
0
Archivo: LC.cs Proyecto: sadit/natix
 /// <summary>
 /// Build the index
 /// </summary>
 public virtual void Build(MetricDB db, int bsize, Random rand)
 {
     this.DB = db;
     var n = this.DB.Count;
     // randomized has very good performance, even compared with more "intelligent" strategies
     var dseq = new DynamicSequentialOrdered ();
     dseq.Build (db, rand);
     this.NODES = new List<Node> (n / bsize + 1);
     var L = new List<ItemPair> (n);
     while (dseq.Count > 0) {
         if (this.NODES.Count % 100 == 0) {
             Console.WriteLine ("XXX {0}, bucketSize: {1}, remain {2}/{3}, db: {4}, date-time: {5}",
                                this, bsize, dseq.Count, db.Count, Path.GetFileName(db.Name), DateTime.Now);
         }
         var refID = dseq.GetAnyItem ();
         dseq.Remove (refID);
         L.Clear ();
         dseq.ComputeDistances (this.DB[refID], L);
         var near = new Result(bsize);
         var far = new Result (1);
         dseq.AppendKExtremes (near, far, L);
         var node = new Node (refID);
         this.NODES.Add (node);
         dseq.Remove (near);
         foreach (var p in near) {
             node.Add(p.ObjID, p.Dist);
         }
     }
 }
 public Specification(string name, Result result)
 {
   _status = result.Status;
   _exception = result.Exception;
   _supplements = result.Supplements;
   _name = name;
 }
Ejemplo n.º 17
0
    public static Result SetSessionByCategoryList()
    {
        CategoryBO oCategoryBO = new CategoryBO();
        Result oResult = new Result();

        List<Category> oListCategory = new List<Category>();

        try
        {
            oResult = oCategoryBO.CategoryGetFromDatabaseForSetSession();

            if (oResult.ResultIsSuccess)
            {
                oListCategory = (List<Category>)oResult.ResultObject;

                Utils.SetSession(SessionManager.csStoredCategory, oListCategory);
            }
        }
        catch (Exception oEx)
        {
            oResult.ResultIsSuccess = false;
            oResult.ResultException = oEx;
            oResult.ResultMessage = "Exception occured during Set Session By CategoryList.";
        }

        return oResult;
    }
Ejemplo n.º 18
0
        public Result Run(int itemCount, long dllSize)
        {
            var result = new Result()
            {
                TestName = Name,
                DTOCount = itemCount,
                DLLSize = dllSize
            };

            var startDate = DateTime.Now;
            var stream = new MemoryStream();
            var testData = SampleDTO.GenerateSamples(itemCount);
            var endDate = DateTime.Now;

            result.SetupTime = (endDate - startDate).TotalMilliseconds;

            startDate = DateTime.Now;
            SerializerUtility.Serialize(stream, testData);
            endDate = DateTime.Now;

            result.SerializeTime = (endDate - startDate).TotalMilliseconds;
            result.SerializedByteCount = stream.ToArray().Length;

            stream.Seek(0, SeekOrigin.Begin);
            startDate = DateTime.Now;
            var deData = SerializerUtility.Deserialize<SampleDTO>(stream);
            endDate = DateTime.Now;

            result.DeserializeTime = (endDate - startDate).TotalMilliseconds;

            return result;
        }
		public void InitialiseDatabase(Result result)
		{
			if (!result.Succeeded)
				return;

			SqlConnection conn = null;
			try
			{
				using (TransactionScope scope = new TransactionScope())
				{
					conn = (SqlConnection)DatabaseManager.DatabaseEngine.GetConnection();
					SqlServer2005Database db = (SqlServer2005Database)DatabaseManager.DatabaseEngine;
					Result r = db.ExecuteScript(conn, ResourceLoader.LoadTextResource("Sprocket.Web.FileManager.SqlServer2005.scripts.sql"));
					if (!r.Succeeded)
					{
						result.SetFailed(r.Message);
						return;
					}
					scope.Complete();
				}
			}
			finally
			{
				DatabaseManager.DatabaseEngine.ReleaseConnection(conn);
			}
			return;
		}
Ejemplo n.º 20
0
 protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
 {
     if (requestCode == 111 && resultCode == Result.Ok) {
         Console.WriteLine (data.Data);
     }
     base.OnActivityResult (requestCode, resultCode, data);
 }
Ejemplo n.º 21
0
        /// <summary>
        /// Get the variable value.
        /// </summary>
        /// <returns></returns>
        public Result GetResult()
        {
            Result result = new Result( 1 );
            result.Add( new object[]{Value} );

            return result;
        }
Ejemplo n.º 22
0
      /// <summary>
      /// Locates and decodes a MaxiCode within an image. This method also accepts
      /// hints, each possibly associated to some data, which may help the implementation decode.
      /// </summary>
      /// <param name="image">image of barcode to decode</param>
      /// <param name="hints">passed as a <see cref="IDictionary{TKey, TValue}"/> from <see cref="DecodeHintType"/>
      /// to arbitrary data. The
      /// meaning of the data depends upon the hint type. The implementation may or may not do
      /// anything with these hints.</param>
      /// <returns>
      /// String which the barcode encodes
      /// </returns>
      public Result Decode(BinaryBitmap image, IDictionary<DecodeHintType, object> hints)
      {
         DecoderResult decoderResult;
         if (hints != null && hints.ContainsKey(DecodeHintType.PURE_BARCODE))
         {
            BitMatrix bits = extractPureBits(image.BlackMatrix);
            if (bits == null)
               return null;
            decoderResult = decoder.decode(bits, hints);
            if (decoderResult == null)
               return null;
         }
         else
         {
            return null;
         }

         ResultPoint[] points = NO_POINTS;
         Result result = new Result(decoderResult.Text, decoderResult.RawBytes, points, BarcodeFormat.MAXICODE);

         var ecLevel = decoderResult.ECLevel;
         if (ecLevel != null)
         {
            result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);
         }
         return result;
      }
Ejemplo n.º 23
0
 /// <summary>
 /// �w��REST API�̌Ăяo����s��
 /// </summary>
 public int GetStatusCode(string extend, ref Result result)
 {
     result.Initialize();
     result.url = baseurl;
     HttpWebRequest webreq = null;
     try
     {
         webreq = (HttpWebRequest)WebRequest.Create(result.url);
     }
     catch (SystemException e)
     {
         result.data = e.Message;
         result.returnCode = -1;
         return result.returnCode;
     }
     //���\�b�h��POST��w��
     webreq.Timeout = timeoutLimit;
     webreq.Method = "GET";
     if (extend != null && extend.Length > 0)
     {
         webreq.Method = "POST";
         webreq.ContentLength = extend.Length;
         System.IO.Stream reqStream = webreq.GetRequestStream();
         reqStream.Write(Encoding.UTF8.GetBytes(extend), 0, extend.Length);
         reqStream.Close();
     }
     HttpWebResponse webres = null;
     try
     {
         webres = (HttpWebResponse)webreq.GetResponse();
         Stream st = webres.GetResponseStream();
         Encoding enc = Encoding.GetEncoding("utf-8");
         StreamReader sr = new StreamReader(st, enc);
         result.data = sr.ReadToEnd();
         sr.Close();
         result.returnCode = (int)webres.StatusCode;
     }
     catch (System.Net.WebException ex)
     {
         if (ex.Status == System.Net.WebExceptionStatus.ProtocolError)
         {
             HttpWebResponse errres = (HttpWebResponse)ex.Response;
             result.returnCode = (int)errres.StatusCode;
         }
         else
         {
             // �������z�X�g���Ȃǂ�����ł��Ȃ����
             result.returnCode = -1;
         }
         result.data = ex.Message;
     }
     finally
     {
         if (webres != null)
         {
             webres.Close();
         }
     }
     return result.returnCode;
 }
Ejemplo n.º 24
0
 public Yield GetGroup(DreamContext context, DreamMessage request, Result<DreamMessage> response) {
     PermissionsBL.CheckUserAllowed(DekiContext.Current.User, Permissions.READ);
     GroupBE group = GetGroupFromUrl();
     DreamMessage responseMsg = DreamMessage.Ok(GroupBL.GetGroupXmlVerbose(group, null));
     response.Return(responseMsg);
     yield break;
 }
Ejemplo n.º 25
0
		public ResultMarker (Result result) : base (
				GetColor (result),
				IsOneLine (result)? (result.Region.BeginColumn) : 0,
				IsOneLine (result)? (result.Region.EndColumn) : 0)
		{
			this.result = result;
		}
        public List<Result> containerReader(string xml)
        {
            var xmlDocument = new XmlDocument();
            //xmlDocument.Load("SomeXML.xml");
            xmlDocument.LoadXml(xml);

            var tmpList = new List<Result>();

            XmlNodeList nodeList = xmlDocument.GetElementsByTagName("container");

            foreach (XmlElement elm in nodeList)
            {
                var result = new Result();
                XmlNodeList titleList = elm.GetElementsByTagName("dc:title");

                result.id = elm.GetAttribute("id");
                result.partenID = elm.GetAttribute("parentID");
                result.ContainerRes = "Container";
                result.type = titleList[0].InnerText;

                tmpList.Add(result);

            }
            return tmpList;
        }
Ejemplo n.º 27
0
        private Result CreateResult(string[] args)
        {
            if (args.Length < 4)
                return null;

            DateTime date;
            int original, optimized;

            Result result = new Result();

            if (!DateTime.TryParse(args[0], out date))
                return null;

            result.Date = date;
            result.FileName = HttpUtility.UrlDecode(args[1]);

            if (!int.TryParse(args[2], out original))
                return null;

            result.Original = original;

            if (!int.TryParse(args[3], out optimized))
                return null;

            result.Optimized = optimized;

            return result;
        }
Ejemplo n.º 28
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            Console.WriteLine(requestCode);
            Console.WriteLine(resultCode);


        }
Ejemplo n.º 29
0
 //private void FireOnResult(int id, int SI, string name, string club, string Class, int start, int time, int status, List<ResultStruct> results)
 private void FireOnResult(Result newResult)
 {
     if (OnResult != null)
     {
         OnResult(newResult);
     }
 }
 public void Store(Result result)
 {
     using (var sP = new StoredProcedure(DataBase.Default, "sp_InsertResult", SetUpResultParameters(result)))
     {
         sP.Execute();
     }
 }
Ejemplo n.º 31
0
 /// <summary>
 ///   Evaluates this instance.
 /// </summary>
 /// <returns> </returns>
 public override Result Render()
 {
     IsValid = MatchRegularExpression();
     return(Result = new Result(this));
 }
 protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
 {
     base.OnActivityResult(requestCode, resultCode, data);
 }
 public ResponseBusquedaNaturalezaCarga()
 {
     ListaNaturalezaCarga = new List <NaturalezaCargaDTO>();
     Result = new Result();
 }
        public IActionResult GetHistory(string walletName, string address)
        {
            if (string.IsNullOrWhiteSpace(walletName))
                return ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, "No wallet name", "No wallet name provided");

            if (string.IsNullOrWhiteSpace(address))
                return ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, "No address", "No address provided");

            try
            {
                var transactionItems = new List<ContractTransactionItem>();

                HdAccount account = this.walletManager.GetAccounts(walletName).First();

                // Get a list of all the transactions found in an account (or in a wallet if no account is specified), with the addresses associated with them.
                IEnumerable<AccountHistory> accountsHistory = this.walletManager.GetHistory(walletName, account.Name);

                // Wallet manager returns only 1 when an account name is specified.
                AccountHistory accountHistory = accountsHistory.First();

                List<FlatHistory> items = accountHistory.History.OrderByDescending(o => o.Transaction.CreationTime).Where(x=>x.Address.Address == address).ToList();

                // Represents a sublist of transactions associated with receive addresses + a sublist of already spent transactions associated with change addresses.
                // In effect, we filter out 'change' transactions that are not spent, as we don't want to show these in the history.
                List<FlatHistory> history = items.Where(t => !t.Address.IsChangeAddress() || (t.Address.IsChangeAddress() && !t.Transaction.IsSpendable())).ToList();

                foreach (FlatHistory item in history)
                {
                    TransactionData transaction = item.Transaction;

                    // Record a receive transaction
                    transactionItems.Add(new ContractTransactionItem
                    {
                        Amount = transaction.Amount.ToUnit(MoneyUnit.Satoshi),
                        BlockHeight = transaction.BlockHeight,
                        Hash = transaction.Id,
                        Type = ReceivedTransactionType(transaction),
                        To = address
                    });

                    // Add outgoing transaction details
                    if (transaction.SpendingDetails != null)
                    {
                        // Get if it's an SC transaction
                        PaymentDetails scPayment = transaction.SpendingDetails.Payments?.FirstOrDefault(x => x.DestinationScriptPubKey.IsSmartContractExec());

                        if (scPayment != null)
                        {
                            if (scPayment.DestinationScriptPubKey.IsSmartContractCreate())
                            {
                                // Create a record for a Create transaction
                                Receipt receipt = this.receiptRepository.Retrieve(transaction.SpendingDetails.TransactionId);
                                transactionItems.Add(new ContractTransactionItem
                                {
                                    Amount = scPayment.Amount.ToUnit(MoneyUnit.Satoshi),
                                    BlockHeight = transaction.SpendingDetails.BlockHeight,
                                    Type = ContractTransactionItemType.ContractCreate,
                                    Hash = transaction.SpendingDetails.TransactionId,
                                    To = receipt?.NewContractAddress?.ToBase58Address(this.network) ?? ""
                                });
                            }
                            else
                            {
                                // Create a record for a Call transaction
                                Result<ContractTxData> txData = this.callDataSerializer.Deserialize(scPayment.DestinationScriptPubKey.ToBytes());

                                transactionItems.Add(new ContractTransactionItem
                                {
                                    Amount = scPayment.Amount.ToUnit(MoneyUnit.Satoshi),
                                    BlockHeight = transaction.SpendingDetails.BlockHeight,
                                    Type = ContractTransactionItemType.ContractCall,
                                    Hash = transaction.SpendingDetails.TransactionId,
                                    To = txData.Value.ContractAddress.ToBase58Address(this.network)
                                });
                            }
                        }
                        else
                        {
                            // Create a record for every external payment sent
                            if (transaction.SpendingDetails.Payments != null)
                            {
                                foreach (PaymentDetails payment in transaction.SpendingDetails.Payments)
                                {
                                    transactionItems.Add(new ContractTransactionItem
                                    {
                                        Amount = payment.Amount.ToUnit(MoneyUnit.Satoshi),
                                        BlockHeight = transaction.SpendingDetails.BlockHeight,
                                        Type = ContractTransactionItemType.Send,
                                        Hash = transaction.SpendingDetails.TransactionId,
                                        To = payment.DestinationAddress
                                    });
                                }
                            }
                        }
                    }
                }

                return this.Json(transactionItems.OrderByDescending(x => x.BlockHeight ?? Int32.MaxValue).ThenBy(x => x.Hash.ToString()));
            }
            catch (Exception e)
            {
                this.logger.LogError("Exception occurred: {0}", e.ToString());
                return ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString());
            }
        }
Ejemplo n.º 35
0
        public ActionResult Index()
        {
            StatisticsViewModel model = new StatisticsViewModel();

            model.RegisteredUsersByState     = new Dictionary <AustralianStateEnum, int>();
            model.AveragePackagePriceByState = new Dictionary <AustralianStateEnum, decimal>();

            try
            {
                // Get number of registered users by state
                Result <IEnumerable <ApplicationUser> > userResult = new Result <IEnumerable <ApplicationUser> >();
                userResult = userService.GetAllUsers();

                if (userResult.Status == ResultEnum.Success)
                {
                    var usersByState = from user in userResult.Data
                                       group user by user.State
                                       into newUser
                                       select new
                    {
                        State = newUser.Key,
                        Count = newUser.Count()
                    };

                    model.RegisteredUsersByState = usersByState.ToDictionary(p => p.State, p => p.Count);
                }
            }
            catch
            {
                // Query failed
            }

            try
            {
                // Get average package price by state
                Result <IEnumerable <Package> > packageResult = new Result <IEnumerable <Package> >();
                packageResult = packageService.GetAllPackages(false);

                if (packageResult.Status == ResultEnum.Success)
                {
                    var averagePackagePriceByState = from package in packageResult.Data
                                                     group package by package.State
                                                     into newPackage
                                                     select new
                    {
                        State        = newPackage.Key,
                        AveragePrice = newPackage.Average(p => p.Amount)
                    };

                    model.AveragePackagePriceByState = averagePackagePriceByState.ToDictionary(p => p.State, p => p.AveragePrice);
                }
            }
            catch
            {
                // Query failed
            }

            try
            {
                // Get revenue by year
                Result <IEnumerable <Order> > orderResult = new Result <IEnumerable <Order> >();
                orderResult = orderService.GetAllOrders();

                if (orderResult.Status == ResultEnum.Success)
                {
                    var revenueByYear = from order in orderResult.Data
                                        group order by order.DateBooked.Year
                                        into newOrder
                                        orderby newOrder.Key
                                        select new
                    {
                        Year    = newOrder.Key,
                        Revenue = newOrder.Sum(p => p.Amount)
                    };


                    model.RevenueByYear = revenueByYear.ToDictionary(p => p.Year, p => p.Revenue);
                }
            }
            catch
            {
                return(View(model));
            }

            return(View(model));
        }
        /// <summary>
        /// Runs the specified argument.
        /// </summary>
        /// <param name="arg">The argument.</param>
        /// <param name="context">The context.</param>
        /// <returns>An order with Federated payment info</returns>
        public async override Task <Order> Run(Order arg, CommercePipelineExecutionContext context)
        {
            Condition.Requires(arg).IsNotNull("The arg can not be null");

            var order = arg;

            var components = order.Components.OfType <FederatedPaymentComponent>().ToList();

            if (!components.Any())
            {
                return(arg);
            }

            var braintreeClientPolicy = context.GetPolicy <BraintreeClientPolicy>();

            if (string.IsNullOrEmpty(braintreeClientPolicy?.Environment) || string.IsNullOrEmpty(braintreeClientPolicy?.MerchantId) ||
                string.IsNullOrEmpty(braintreeClientPolicy?.PublicKey) || string.IsNullOrEmpty(braintreeClientPolicy?.PrivateKey))
            {
                context.CommerceContext.AddMessage(
                    context.GetPolicy <KnownResultCodes>().Error,
                    "InvalidClientPolicy",
                    new object[] { "BraintreeClientPolicy" },
                    $"{this.Name}. Invalid BraintreeClientPolicy");
                return(arg);
            }

            try
            {
                var gateway = new BraintreeGateway(braintreeClientPolicy?.Environment, braintreeClientPolicy?.MerchantId, braintreeClientPolicy?.PublicKey, braintreeClientPolicy?.PrivateKey);

                var existingPayment = order.GetComponent <FederatedPaymentComponent>();
                if (existingPayment == null)
                {
                    return(arg);
                }

                Result <Transaction> result = gateway.Transaction.Void(existingPayment.TransactionId);
                if (result.IsSuccess())
                {
                    context.Logger.LogInformation($"{this.Name} - Void Payment succeeded:{ existingPayment.Id }");
                    existingPayment.TransactionStatus = result.Target.Status.ToString();
                    await this.GenerateSalesActivity(order, existingPayment, context);
                }
                else
                {
                    var errorMessages = result.Errors.DeepAll().Aggregate(string.Empty, (current, error) => current + ("Error: " + (int)error.Code + " - " + error.Message + "\n"));

                    context.Abort(context.CommerceContext.AddMessage(
                                      context.GetPolicy <KnownResultCodes>().Error,
                                      "PaymentVoidFailed",
                                      new object[] { existingPayment.TransactionId },
                                      $"{this.Name}. Payment void failed for transaction { existingPayment.TransactionId }: { errorMessages }"), context);

                    return(arg);
                }
            }
            catch (BraintreeException ex)
            {
                context.CommerceContext.AddMessage(
                    context.GetPolicy <KnownResultCodes>().Error,
                    "PaymentVoidFailed",
                    new object[] { order.Id },
                    $"{this.Name}. Payment refund failed: { ex.Message }");
                return(arg);
            }

            return(arg);
        }