using ConstructionCompanyContracts.BindingModels; using ConstructionCompanyContracts.ViewModels; using ConstructionCompanyDataModels.Models; using MongoDB.Bson; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConstructionCompanyMongoDBImplement.Models { public class Position : IPositionModel { public string PositionName { get; private set; } = string.Empty; public double Salary { get; set; } public int Id { get; private set; } public List Employees { get; private set; } = new List(); public static Position? Create(PositionBindingModel? model) { if (model == null) { return null; } return new Position() { Id = model.Id, PositionName = model.PositionName, Salary = model.Salary }; } public static BsonDocument? CreateBSON(PositionBindingModel? model) { if (model == null) { return null; } return new BsonDocument { {"_id", model.Id}, {"PositionName", $"{model.PositionName}"}, {"Salary", $"{model.Salary}" }, {"EmployeesId", new BsonArray{}} }; } public static BsonDocument? UpdateBSON(PositionBindingModel? model, List ids) { if (model == null) { return null; } return new BsonDocument { {"_id", model.Id}, {"PositionName", $"{model.PositionName}"}, {"Salary", $"{model.Salary}" }, {"EmployeesId", new BsonArray(ids)} }; } public PositionViewModel GetViewModel => new() { Id = Id, PositionName = PositionName, Salary = Salary }; } }