Hauss Mono
Hauss Mono
Hauss Mono is a close relative of the regular Hauss. The typefaces of the same family look harmonically together and allow switching from one to the other without losing the integrity of the layout.
The interchangeability has been achieved by carefully fine-tuning the balance between the recognizable features of Hauss and the traditional characteristics of monospace typefaces. The monospace version becomes recognizable thanks to its neo-grotesque character and dynamic proportions inherited from the original.
Hauss
Hauss Mono is a close relative of the regular Hauss. The typefaces of the same family look harmonically together and allow switching from one to the other without losing the integrity of the layout.
The interchangeability has been achieved by carefully fine-tuning the balance between the recognizable features of Hauss and the traditional characteristics of monospace typefaces. The monospace version becomes recognizable thanks to its neo-grotesque character and dynamic proportions inherited from the original.
- // Functionally, Hauss Mono is designed for writing and reading code.
- // High readability in small sizes is achieved by the increased height of lowercase letters
- // and improved legibility of similar symbols such as I,l,O,0.
- public async Task<IEnumerable<FileAttachmentDto>> UploadFiles(int subRequestId, List<IFormFile> files, IPrincipal user) {
- if (user.Identity?.Name == null)
- {
- throw new HttpAppException(401, "Unauthorized");
- }
- var subRequest = await _context.PdSubRequests.FindAsync(subRequestId);
- if (subRequest == null)
- {
- throw new HttpAppException(404, "Sub-request not found");
- }
- if (subRequest.Parent.Type == PdRequestType.Delete)
- {
- throw new HttpAppException(400, "Personal data request is a delete request");
- }
- // TODO restore this when state logic is done
- // if (subRequest.State != PdRequestState.Active)
- // {
- // throw new HttpAppException(400, "Sub-request must be in the state Active");
- // }
- var attachments = new List<FileAttachment>();
- var fileStorage = _configuration["FileStorage"];
- var idx = subRequest.FileAttachments.Count + 1;
- foreach (var file in files)
- {
- var name = $"{subRequest.ParentId}{subRequest.Service.Name}";
- if (files.Count > 1 || idx > 1)
- {
- if (idx > 1)
- {
- name += $"_{idx++}";
- }
- }
- name += ".csv";
- var path = Path.Combine(fileStorage, name);
- attachments.Add(new FileAttachment
- {
- OriginalName = file.FileName,
- Author = user.Identity?.Name!,
- Path = path,
- PdSubRequest = subRequest
- });
- await using var fStream = File.Create(path);
- await file.CopyToAsync(fStream);
- }
- await _context.FileAttachments.AddRangeAsync(attachments);
- await _context.SaveChangesAsync();
- return _mapper.Map<IEnumerable<FileAttachmentDto>>(attachments);
- }
The character set includes extended Latin and Cyrillic alphabets, Greek alphabet, mathematical symbols and currency signs.