@{ /****************************************************************************** // MARECHAI: Master repository of computing history artifacts information // ---------------------------------------------------------------------------- // // Author(s) : Natalia Portillo // // --[ License ] -------------------------------------------------------------- // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // ---------------------------------------------------------------------------- // Copyright © 2003-2020 Natalia Portillo *******************************************************************************/ } @page "/company/{Id:int}" @using Marechai.Database @inherits OwningComponentBase @inject IStringLocalizer L @inject CompanyLogosService CompanyLogosService @inject IWebHostEnvironment Host @if(!_loaded) {

@L["Loading..."]

return; } @if(_company is null) {

@L["Company not found."]

return; }

@if(_company.LastLogo != null && File.Exists(Path.Combine(Host.WebRootPath, "assets/logos", _company.LastLogo + ".svg"))) { }

@if(_logos != null && _logos.Count > 1) {
@foreach(var logo in _logos.Where(logo => File.Exists(Path.Combine(Host.WebRootPath, "assets/logos", logo.Guid + ".svg")))) {
@if(logo.Year.HasValue) {
@(string.Format(L["in use since {0}"], logo.Year))
}
}
}
@if(_company.Founded.HasValue) { @if(_company.FoundedMonthIsUnknown) { } else if(_company.FoundedDayIsUnknown) { } else { } } @if(!string.IsNullOrEmpty(_company.LegalName)) { } @switch(_company.Status) { case CompanyStatus.Unknown: break; case CompanyStatus.Active: break; case CompanyStatus.Sold: if(_company.Sold != null) { if(_soldTo != null) { } else { } } else { if(_soldTo != null) { } else { } } break; case CompanyStatus.Merged: if(_company.Sold != null) { if(_soldTo != null) { } else { } } else { if(_soldTo != null) { } else { } } break; case CompanyStatus.Bankrupt: if(_company.Sold != null) { } else { } break; case CompanyStatus.Defunct: if(_company.Sold != null) { } else { } break; case CompanyStatus.Renamed: if(_company.Sold != null) { if(_soldTo != null) { } else { } } else { if(_soldTo != null) { } else { } } break; default: throw new ArgumentOutOfRangeException(); } @if(!string.IsNullOrEmpty(_company.Website) || !string.IsNullOrEmpty(_company.Twitter) || !string.IsNullOrEmpty(_company.Facebook)) { }
@_company.Name
@L["Founded"]@_company.Founded.Value.Year.@($"{_company.Founded.Value:Y}").@_company.Founded.Value.ToLongDateString().
@L["Legal name"] @_company.LegalName
@L["Country"] @if(_company.Country != null) { @if(File.Exists(Path.Combine(Host.WebRootPath, "assets/flags/countries", $"{_company.CountryId:D3}.svg"))) { } @L[_company.Country] } else { @L["Unknown (country)"] }
@L["Status"]@L["Current company status is unknown."]@L["Company is active."] @string.Format(L["Company sold to {0} on {1}."], _soldTo.Name, _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString()) @string.Format(L["Company sold on {0} to an unknown company."], _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString()) @string.Format(L["Company sold to {0} on an unknown date."], _soldTo.Name) @L["Company was sold to an unknown company on an unknown date."] @string.Format(L["Company merged on {0} to form {1}."], _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString(), _soldTo.Name) @string.Format(L["Company merged on {0} to form an unknown company."], _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString()) @string.Format(L["Company merged on an unknown date to form {0}."], _soldTo.Name) @L["Company merged to form an unknown company on an unknown date."]@string.Format(L["Company declared bankruptcy on {0}."], _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString())@L["Company declared bankruptcy on an unknown date."]@string.Format(L["Company ceased operations on {0}."], _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString())@L["Company ceased operations on an unknown date."] @string.Format(L["Company renamed to {0} on {1}."], _soldTo.Name, _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString()) @string.Format(L["Company was renamed on {0} to an unknown name."], _company.SoldMonthIsUnknown ? $"{_company.Sold.Value.Year}" : _company.SoldDayIsUnknown ? $"{_company.Sold.Value:Y}" : _company.Sold.Value.ToLongDateString()) @string.Format(L["Company renamed to {0} on an unknown date."], _soldTo.Name) @L["Company renamed to an unknown name on an unknown date."]
@L["Address"] @_company.Address
@if(_company.City != _company.Province) { @_company.City
} @_company.PostalCode @_company.Province
@L["Links"] @if(!string.IsNullOrEmpty(_company.Website)) { @L["Website"]
} @if(!string.IsNullOrEmpty(_company.Twitter)) { Twitter
} @if(!string.IsNullOrEmpty(_company.Facebook)) { Facebook
}
@{ // TODO: Accordion }
@if(_computers.Count > 0) {
@foreach(var computer in _computers) { @computer.Name
}
} else {
} @if(_consoles.Count > 0) {
@foreach(var console in _consoles) { @console.Name
}
} else {
}
@if(_description != null) {
@((MarkupString)_description)
}