Mike Phares b99b721458 Moved System.IO references from DMO classes to Static Helpers
Removed nugetSource from pipeline
Removed more comments
Created Static Classes for most DMO / Controller Classes
Push ConfigurationManager.AppSettings to controller
Align Tests with other Projects
2024-12-11 09:29:01 -07:00

200 lines
6.0 KiB
C#

#pragma warning disable CS8019
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Fab2ApprovalSystem.ViewModels;
#if !NET8
using System.Web.Mvc;
#endif
using System.Text.RegularExpressions;
#pragma warning restore CS8019
namespace Fab2ApprovalSystem.Models;
public class CredentialsStorage {
public string UserName { get; set; }
public string Password { get; set; }
}
public class Lot {
public int LotID { get; set; }
[Display(Name = "Wafer Lot#")]
public string LotNumber { get; set; }
public string ParentLotNumber { set; get; }
public int MRBNumber { get; set; }
public string MRBDispoType { get; set; }
public bool GoodToSubmit { get; set; }
public string SubmitErrorMessage { get; set; }
// Lot Disposition Issue Number
public int IssueID { get; set; }
public string IssueIDWithoutMRB { get; set; }
public string DieLotNumber { get; set; }
public string Description { get; set; }
[Display(Name = "New PN#")]
public string NewPartNo { get; set; }
[Display(Name = "WIP PN#")]
public string WipPartNo { get; set; }
[Display(Name = "Die PN#")]
public string DiePartNo { get; set; }
[Display(Name = "Device Type")]
public string ProductFamily { get; set; }
public string Gen { get; set; }
public string Channel { get; set; }
public string Hexsize { get; set; }
public double Voltage { get; set; }
public int WaferCount { get; set; }
public int ReleaseCount { get; set; }
public int ScrapCount { get; set; }
public int DieCount { get; set; }
public string Location { get; set; }
public double TotalCost { get; set; }
public int LotStatusOptionID { get; set; }
public string LotStatusOptionName { get; set; }
public double WaferCost { get; set; }
public double DieCost { get; set; }
[UIHint("LotStatusOptionTemplate")]
[Display(Name = "Lot Status")]
public LotStatusOptionViewModel LotStatusOption { get; set; }
public ScrapLot ScrapLotWafer { get; set; }
[Display(Name = "Lot Dispos")]
public string OtherLotDispos { get; set; }
public char? DispoType { get; set; }
[Display(Name = "Lot Dispos")]
public string LotDispositionsLinkedToLot { get; set; }
[Display(Name = "MRBs")]
public string MRBsLinkedToLot { get; set; }
public string Status { get; set; }
public int OpenIssueWithExistingLots { get; set; }
public string QualityCode { get; set; }
[Display(Name = "Source Lot#")]
public string SourceLot { get; set; }
public string SourceAction { get; set; }
public DateTime? SourceActionTime { get; set; }
public DateTime? SPNTransmitTime { get; set; }
public string SPNTransmitMsg { get; set; }
[Display(Name = "MRBs")]
public string OtherMRBs { get; set; }
public Lot() {
LotStatusOption = new LotStatusOptionViewModel();
ScrapLotWafer = new ScrapLot();
}
public bool IsDirty { get; set; }
}
public class MRBHoldFlagReport {
public string LotNo { get; set; }
public string TransactionType { get; set; }
public string PartNo { get; set; }
public string CurrentLocation { get; set; }
public string CurrentOperation { get; set; }
public int StartQty { get; set; }
public int CurrentQty { get; set; }
public string LotStatus { get; set; }
public string OperStatus { get; set; }
public string Successful { get; set; }
public string Comment { get; set; }
public string PriorMRBHoldLocation { get; set; }
public string PriorMRBHoldOperation { get; set; }
public string PriorMRB_DispoType { get; set; }
public string CurrentMRBHoldLocation { get; set; }
public string CurrentMRBHoldOperation { get; set; }
public string CurrentMRB_DispoType { get; set; }
public string MRB_DispoType { get; set; }
public DateTime TransactionDateTime { get; set; }
public string MRBLocation { get; set; }
public string MRBOperation { get; set; }
public bool Reprocess { get; set; }
public bool HasErrors { get; set; }
}
public class MRBLotsTobeSentToSPN {
public string LotNumber { get; set; }
public int MRBNumber { get; set; }
public char? DispoType { get; set; }
public char AddRemoveChangeMRBFlag { get; set; }
public bool IsDirty { get; set; }
public bool SentToSPN { get; set; }
public DateTime MRBLotLastSentToSPNDatetime { get; set; }
}
#if !NET8
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class CustomDispoTypeValidationAttribute : ValidationAttribute, IClientValidatable {
public override bool IsValid(object value) {
char tem = (char)value;
var productName = tem.ToString();
if (!string.IsNullOrEmpty(productName)) {
return Regex.IsMatch(productName, "^[A,B,C,D]");
}
return true;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) {
yield return new ModelClientValidationRule {
ErrorMessage = ErrorMessage,
ValidationType = "dispotypevalidation"
};
}
}
#endif
public class Department {
public int DepartmentID { get; set; }
public string DepartmentName { get; set; }
}
public class AffectedModule {
public int ModuleID { get; set; }
public string ModuleName { get; set; }
}
public class WIPPart {
public string WIPPartData { get; set; }
public string PartNumber { get; set; }
public string SiliconPartNumber { get; set; }
public string ProcessFlow { get; set; }
}
public class ProductFamilies {
public int ProductFamilyID { get; set; }
public string ProductFamily { get; set; }
}
public class LotSplitAnalysisResult {
public int ID { get; set; }
public string ParentLotNo { get; set; }
public string LotNo { get; set; }
public DateTime ActionTime { get; set; }
public string ActionType { get; set; }
public bool? IsAffected { get; set; }
}