github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/Decentralized-Energy-Composer-master/angular-app/src/app/Energy/Energy.component.ts (about)

     1  import { Component, OnInit, Input } from '@angular/core';
     2  import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
     3  import { EnergyService } from './Energy.service';
     4  import 'rxjs/add/operator/toPromise';
     5  
     6  //provide associated components
     7  @Component({
     8  	selector: 'app-Energy',
     9  	templateUrl: './Energy.component.html',
    10  	styleUrls: ['./Energy.component.css'],
    11    providers: [EnergyService]
    12  })
    13  
    14  //EnergyComponent class
    15  export class EnergyComponent implements OnInit {
    16  
    17    //define variables
    18    myForm: FormGroup;
    19  
    20    private allAssets;
    21    private asset;
    22    private currentId;
    23  	private errorMessage;
    24  
    25    //initialize form variables
    26    energyID = new FormControl("", Validators.required);
    27    units = new FormControl("", Validators.required);
    28    value = new FormControl("", Validators.required);
    29    ownerID = new FormControl("", Validators.required);
    30    ownerEntity = new FormControl("", Validators.required);
    31    
    32    //intialize form
    33    constructor(private serviceEnergy:EnergyService, fb: FormBuilder) {
    34      this.myForm = fb.group({
    35            energyID:this.energyID,
    36            units:this.units,
    37            value:this.value,
    38            ownerID:this.ownerID,
    39            ownerEntity:this.ownerEntity        
    40      });
    41    };
    42  
    43    //on page initialize, load all energy assets
    44    ngOnInit(): void {
    45      this.loadAll();
    46    }
    47  
    48    //load all energy assets on the blockchain network
    49    loadAll(): Promise<any> {
    50      
    51      //retrieve all energy assets in the tempList array
    52      let tempList = [];
    53  
    54      //call serviceEnergy to get all energy asset objects
    55      return this.serviceEnergy.getAll()
    56      .toPromise()
    57      .then((result) => {
    58        this.errorMessage = null;
    59        
    60        //append tempList with the energy asset objects returned
    61        result.forEach(asset => {
    62          tempList.push(asset);
    63        });
    64  
    65        //assign tempList to allAssets
    66        this.allAssets = tempList;
    67      })
    68      .catch((error) => {
    69          if(error == 'Server error'){
    70              this.errorMessage = "Could not connect to REST server. Please check your configuration details";
    71          }
    72          else if(error == '404 - Not Found'){
    73  				this.errorMessage = "404 - Could not find API route. Please check your available APIs."
    74          }
    75          else{
    76              this.errorMessage = error;
    77          }
    78      });
    79    }
    80  
    81    //add energy asset
    82    addAsset(form: any): Promise<any> {
    83  
    84      //define energy asset object
    85      this.asset = {
    86        $class: "org.decentralized.energy.network.Energy",
    87            "energyID":this.energyID.value,
    88            "units":this.units.value,
    89            "value":this.value.value,
    90            "ownerID":this.ownerID.value,
    91            "ownerEntity":this.ownerEntity.value        
    92      };
    93  
    94      //update form
    95      this.myForm.setValue({      
    96            "energyID":null,
    97            "units":null,
    98            "value":null,
    99            "ownerID":null,
   100            "ownerEntity":null
   101      });
   102  
   103      //call serviceEnergy to add energy asset
   104      return this.serviceEnergy.addAsset(this.asset)
   105      .toPromise()
   106      .then(() => {
   107        this.errorMessage = null;
   108        
   109        //update form
   110        this.myForm.setValue({
   111            "energyID":null,
   112            "units":null,
   113            "value":null,
   114            "ownerID":null,
   115            "ownerEntity":null 
   116          
   117        });
   118      })
   119      .catch((error) => {
   120          if(error == 'Server error'){
   121              this.errorMessage = "Could not connect to REST server. Please check your configuration details";
   122          }
   123          else{
   124              this.errorMessage = error;
   125          }
   126      });
   127    }
   128  
   129    //set id
   130    setId(id: any): void{
   131      this.currentId = id;
   132    }
   133  
   134    //get form based on energyID
   135    getForm(id: any): Promise<any>{
   136  
   137      //call serviceEnergy to get energy asset object
   138      return this.serviceEnergy.getAsset(id)
   139      .toPromise()
   140      .then((result) => {
   141  			this.errorMessage = null;
   142        let formObject = {
   143              "energyID":null,
   144              "units":null,
   145              "value":null,
   146              "ownerID":null,
   147              "ownerEntity":null 
   148        };
   149        
   150        //update formObject
   151        if(result.energyID){
   152          formObject.energyID = result.energyID;
   153        }else{
   154          formObject.energyID = null;
   155        }
   156      
   157        if(result.units){
   158          formObject.units = result.units;
   159        }else{
   160          formObject.units = null;
   161        }
   162      
   163        if(result.value){
   164          formObject.value = result.value;
   165        }else{
   166          formObject.value = null;
   167        }
   168      
   169        if(result.ownerID){
   170          formObject.ownerID = result.ownerID;
   171        }else{
   172          formObject.ownerID = null;
   173        }
   174      
   175        if(result.ownerEntity){
   176          formObject.ownerEntity = result.ownerEntity;
   177        }else{
   178          formObject.ownerEntity = null;
   179        }
   180        
   181        //set formObject
   182        this.myForm.setValue(formObject);
   183  
   184      })
   185      .catch((error) => {
   186          if(error == 'Server error'){
   187              this.errorMessage = "Could not connect to REST server. Please check your configuration details";
   188          }
   189          else if(error == '404 - Not Found'){
   190  				this.errorMessage = "404 - Could not find API route. Please check your available APIs."
   191          }
   192          else{
   193              this.errorMessage = error;
   194          }
   195      });
   196  
   197    }
   198  
   199    //reset form
   200    resetForm(): void{
   201      this.myForm.setValue({
   202            "energyID":null,
   203            "units":null,
   204            "value":null,
   205            "ownerID":null,
   206            "ownerEntity":null 
   207        });
   208    }
   209  
   210  }