Portal

<back to all web services

BrowseAllContract

Requires Authentication
The following routes are available for this service:
POST/user/{userid}/allcontracts
import Foundation
import ServiceStack

public class BrowseAllContract : PaginationRequestBase, IPost
{
    public var userId:Int

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case userId
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        userId = try container.decodeIfPresent(Int.self, forKey: .userId)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if userId != nil { try container.encode(userId, forKey: .userId) }
    }
}

public class PaginationRequestBase : IGridView, Codable
{
    public var gridViewState:GridViewState

    required public init(){}
}

public class GridViewState : Codable
{
    public var columnState:GridViewColumnState
    public var columnFilters:[GridViewColumnFilter] = []
    public var pagerState:GridViewPagerState
    public var isReturnCount:Bool

    required public init(){}
}

public class GridViewColumnState : Codable
{
    public var fieldName:String
    public var sortDirection:GridSortDirection

    required public init(){}
}

public enum GridSortDirection : Int, Codable
{
    case None = 0
    case Asc = 1
    case Desc = 2
}

public class GridViewColumnFilter : Codable
{
    public var fieldName:String
    public var filterValue:String
    public var `operator`:FilterOperator

    required public init(){}
}

public enum FilterOperator : Int, Codable
{
    case NotSet = 0
    case Equal = 1
    case Greater = 2
    case Less = 3
    case GreaterOrEqual = 4
    case LessOrEqual = 5
    case NotEqual = 6
    case IsNull = 7
    case IsNotNull = 8
    case Like = 9
    case NotLike = 10
    case Begins = 11
    case Ends = 12
    case In = 13
    case Between = 14
}

public class GridViewPagerState : Codable
{
    public var skipRowCount:Int
    public var pageRowCount:Int

    required public init(){}
}

public class PaginationResponse<TenderSimple : Codable> : ResponseBase
{
    public var result:PaginationResult<TenderSimple>

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case result
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        result = try container.decodeIfPresent(PaginationResult<TenderSimple>.self, forKey: .result)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if result != nil { try container.encode(result, forKey: .result) }
    }
}

public class ResponseBase : Codable
{
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class PaginationResult<TModel : Codable> : Codable
{
    public var totalRowCount:Int
    public var items:[TModel] = []

    required public init(){}
}

public class TenderSimple : Codable
{
    public var tenderId:Int
    public var tenderIdentifier:String
    public var procedureType:ProcedureType
    public var subject:String
    public var tenderRoundName:String
    public var sectionName:String
    public var deadline:Date?
    public var tenderType:TenderType
    public var tenderStatus:TenderStatus
    public var isUnderPublish:Bool
    public var publishStartDateTime:Date?
    public var publishEndDateTime:Date?
    public var publishedById:Int?
    public var isProcurementEnabled:Bool
    public var isComplianceEnabled:Bool

    required public init(){}
}

public enum ProcedureType : Int, Codable
{
    case Competition = 0
    case Simplified = 1
}

public enum TenderType : Int, Codable
{
    case Private = 0
    case Public = 1
}

public enum TenderStatus : Int, Codable
{
    case FirstRound = 0
    case SecondRound = 1
    case ThirdRound = 2
    case Successful = 3
    case UnSuccessful = 4
    case Revoked = 5
}


Swift BrowseAllContract DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /user/{userid}/allcontracts HTTP/1.1 
Host: szallitoiportal-be.veolia.hu 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	UserId: 0,
	GridViewState: 
	{
		ColumnState: 
		{
			FieldName: String,
			SortDirection: 0
		},
		ColumnFilters: 
		[
			{
				FieldName: String,
				FilterValue: String,
				Operator: 0
			}
		],
		PagerState: 
		{
			SkipRowCount: 0,
			PageRowCount: 0
		},
		IsReturnCount: False
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Result: 
	{
		TotalRowCount: 0,
		Items: 
		[
			{
				Id: 0,
				TenderId: 0,
				UserId: 0,
				TenderUserId: 0,
				Buyer: String,
				Subject: String,
				TenderIdentifier: String,
				ContractIdentifier: String,
				Status: 0,
				ConfirmationDeadline: 0001-01-01,
				CancellationDateTime: 0001-01-01,
				IsCancelled: False
			}
		]
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}