Example #1
0
        public static void GetFilePaths(ref TableMakerModel tableMakerModel)
        {
            var project  = tableMakerModel.Project;
            var programs = tableMakerModel.Programs;
            var testers  = tableMakerModel.Testers;

            OCVModel      ocvModel      = new OCVModel();
            RCModel       rcModel       = new RCModel();
            MiniModel     miniModel     = new MiniModel();
            StandardModel standardModel = new StandardModel();
            AndroidModel  androidModel  = new AndroidModel();

            tableMakerModel.OCVModel      = ocvModel;
            tableMakerModel.RCModel       = rcModel;
            tableMakerModel.MiniModel     = miniModel;
            tableMakerModel.StandardModel = standardModel;
            tableMakerModel.AndroidModel  = androidModel;

            ocvModel.FilePath = OCVTableMaker.GetOCVTableFilePath(project);
            rcModel.FilePath  = RCTableMaker.GetRCTableFilePath(project);
            List <string> strFilePaths;

            GetDriverFilePaths(project.BatteryType.Manufacturer, project.BatteryType.Name, project.AbsoluteMaxCapacity.ToString(), "mini", out strFilePaths);
            miniModel.FilePaths = strFilePaths;
            GetDriverFilePaths(project.BatteryType.Manufacturer, project.BatteryType.Name, project.AbsoluteMaxCapacity.ToString(), "standard", out strFilePaths);
            standardModel.FilePaths = strFilePaths;
            GetDriverFilePaths(project.BatteryType.Manufacturer, project.BatteryType.Name, project.AbsoluteMaxCapacity.ToString(), "android", out strFilePaths);
            androidModel.FilePaths = strFilePaths;
        }
        } = 1;                                                        //(A200831)francis, for table_mini
        #region Mini
        public static void GetMiniModel(List <SourceData> ocvSource, List <SourceData> rcSource, OCVModel ocvModel, RCModel rcModel, Project project, ref MiniModel miniModel)
        {
            MiniModel output = miniModel;

            output.iOCVVolt  = ocvModel.iOCVVolt;
            output.fCTABase  = rcModel.fCTABase;
            output.fCTASlope = rcModel.fCTASlope;
            List <short> ilstOutIR;
            var          num = (iNumOfMiniPoints + 1) * rcModel.listfTemp.Count;
            List <float> flstRC_T;

            List <List <float> > fLstRCM_Volt;

            GetLstRCM_Volt(ocvSource, rcSource, rcModel, out fLstRCM_Volt);
            GetLstRC_T(fLstRCM_Volt, out flstRC_T);
            List <float> flstOCV;

            GetLstTblM_OCV(ocvSource, out flstOCV);
            GetLstOutIR(num, iNumOfMiniPoints + 1, rcModel.listfCurr, flstOCV, flstRC_T, out ilstOutIR);
            List <float> flstTotalAcc;

            GetLstTotalAcc(out flstTotalAcc, project, rcSource, rcModel);
            List <double> poly2EstFACC;
            List <double> poly2EstIR;

            GetPoly(rcModel.listfTemp, ilstOutIR, flstTotalAcc, out poly2EstFACC, out poly2EstIR);
            output.poly2EstFACC = poly2EstFACC;
            output.poly2EstIR   = poly2EstIR;
        }
Example #3
0
        // DeleteAMiniModel
        public async Task Delete(int id)
        {
            MiniModel miniModel = await _context.MiniModels.FindAsync(id);

            _context.Entry(miniModel).State = EntityState.Deleted;
            await _context.SaveChangesAsync();
        }
        public static void GenerateMiniDriver(MiniModel miniModel, Project project)
        {
            List <string> strFilePaths;

            TableMakerService.GetDriverFilePaths(project.BatteryType.Manufacturer, project.BatteryType.Name, project.AbsoluteMaxCapacity.ToString(), "mini", out strFilePaths);
            List <string> strHHeaderComments;
            UInt32        uErr = 0;

            TableMakerService.InitializeHeaderInfor(ref uErr, project.BatteryType.Manufacturer, project.BatteryType.Name, project.AbsoluteMaxCapacity.ToString(), project.LimitedChargeVoltage.ToString(), project.CutoffDischargeVoltage.ToString(), out strHHeaderComments);
            var OutFolder = $@"{GlobalSettings.RootPath}{project.BatteryType.Name}\{project.Name}\{GlobalSettings.ProductFolderName}";

            GenerateMiniCHFiles(OutFolder, strFilePaths[0], strFilePaths[1], strHHeaderComments, miniModel.iOCVVolt, miniModel.fCTABase, miniModel.fCTASlope, miniModel.poly2EstFACC, miniModel.poly2EstIR);
        }
Example #5
0
        // UpdateAMiniModel
        public async Task <MiniModelDTO> Update(MiniModelDTO miniModel, int id)
        {
            Enum.TryParse(miniModel.BuildState, out BuildState buildState);

            MiniModel updatedMiniModel = new MiniModel()
            {
                Id           = miniModel.Id,
                Name         = miniModel.Name,
                Manufacturer = miniModel.Manufacturer,
                Faction      = miniModel.Faction,
                PointCost    = miniModel.PointCost,
                BuildState   = buildState
            };

            _context.Entry(updatedMiniModel).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(miniModel);
        }
Example #6
0
        /// <summary>
        /// adds the mini from the wishlist to MiniModel
        /// </summary>
        /// <param name="email">user email</param>
        /// <param name="id">integer for id</param>
        /// <returns> task completion </returns>
        public async Task AddMiniWishListToMiniModel(string email, int id)
        {
            var wishList = await _context.MiniWishLists.Where(x => x.Email == email)
                           .FirstOrDefaultAsync(x => x.Id == id);

            MiniModel miniModel = new MiniModel()
            {
                Name         = wishList.Name,
                Manufacturer = wishList.Manufacturer,
                PartNumber   = wishList.PartNumber,
                Faction      = wishList.Faction,
                PointCost    = wishList.PointCost,
                BuildState   = BuildState.unBuilt,
                Email        = email
            };

            _context.Entry(miniModel).State = EntityState.Added;
            _context.Entry(wishList).State  = EntityState.Deleted;
            await _context.SaveChangesAsync();
        }
Example #7
0
        // CreateAMiniModel
        /// <summary>
        /// The below method allows one to create an minimodel to be stored within MiniModel
        /// </summary>
        /// <param name="supplyName">the name of the minimodel item</param>
        /// <returns>the newly added minimodel item</returns>
        public async Task <MiniModelDTO> Create(MiniModelDTO miniModel, string email)
        {
            Enum.TryParse(miniModel.BuildState, out BuildState buildState);

            MiniModel entity = new MiniModel()
            {
                Name         = miniModel.Name,
                Manufacturer = miniModel.Manufacturer,
                PartNumber   = miniModel.PartNumber,
                Faction      = miniModel.Faction,
                PointCost    = miniModel.PointCost,
                BuildState   = buildState,
                Email        = email
            };

            _context.Entry(entity).State = EntityState.Added;
            await _context.SaveChangesAsync();

            return(miniModel);
        }
Example #8
0
        // GetAMiniModel
        public async Task <MiniModelDTO> GetMiniModel(int id)
        {
            MiniModel miniModel = await _context.MiniModels.FindAsync(id);

            var paintList = await _context.MinisToPaint.Where(x => x.MiniModelId == id)
                            .Include(x => x.Paint)
                            .ToListAsync();

            var suppliesList = await _context.MinisToSupply.Where(x => x.MiniModelId == id)
                               .Include(x => x.Supply)
                               .ToListAsync();

            // ============ TODO: Needs Testing =============
            List <PaintDTO>  paints   = new List <PaintDTO>();
            List <SupplyDTO> supplies = new List <SupplyDTO>();

            foreach (var item in paintList)
            {
                paints.Add(await _paint.GetPaint(item.Paint.Id));
            }

            foreach (var item in suppliesList)
            {
                supplies.Add(await _supply.GetSupply(1));
            }


            MiniModelDTO miniDto = new MiniModelDTO()
            {
                Id           = miniModel.Id,
                Name         = miniModel.Name,
                Manufacturer = miniModel.Manufacturer,
                Faction      = miniModel.Faction,
                PointCost    = miniModel.PointCost,
                BuildState   = miniModel.BuildState.ToString(),
                Paints       = paints,
                Supplies     = supplies
            };

            return(miniDto);
        }
Example #9
0
        // GetAMiniModel
        /// <summary>
        /// the below method allows one to search for a particular minimodel item
        /// </summary>
        /// <param name="email">this is the email associated with the current user (ensures they have access to minimodel item)</param>
        /// <returns>the minimodel item in question</returns>
        public async Task <MiniModelDTO> GetMiniModel(int id, string email)
        {
            MiniModel miniModel = await _context.MiniModels.Where(x => x.Email == email)
                                  .FirstOrDefaultAsync(x => x.Id == id);

            var paintList = await _context.MinisToPaint.Where(x => x.MiniModelId == id)
                            .Include(x => x.Paint)
                            .ToListAsync();

            var suppliesList = await _context.MinisToSupply.Where(x => x.MiniModelId == id)
                               .Include(x => x.Supply)
                               .ToListAsync();

            List <PaintDTO>  paints   = new List <PaintDTO>();
            List <SupplyDTO> supplies = new List <SupplyDTO>();

            foreach (var item in paintList)
            {
                paints.Add(await _paint.GetPaint(item.Paint.Id, email));
            }

            foreach (var item in suppliesList)
            {
                supplies.Add(await _supply.GetSupply(item.Supply.Id, email));
            }

            MiniModelDTO miniDto = new MiniModelDTO()
            {
                Id           = miniModel.Id,
                Name         = miniModel.Name,
                Manufacturer = miniModel.Manufacturer,
                PartNumber   = miniModel.PartNumber,
                Faction      = miniModel.Faction,
                PointCost    = miniModel.PointCost,
                BuildState   = miniModel.BuildState.ToString(),
                Paints       = paints,
                Supplies     = supplies
            };

            return(miniDto);
        }
Example #10
0
        // ================== TODO ===========================
        // CreateAMiniModel
        public async Task <MiniModelDTO> Create(MiniModelDTO miniModel)
        {
            //========================= TODO get User ID and attach it to "entity" =========================
            Enum.TryParse(miniModel.BuildState, out BuildState buildState);

            MiniModel entity = new MiniModel()
            {
                Name         = miniModel.Name,
                Manufacturer = miniModel.Manufacturer,
                PartNumber   = miniModel.PartNumber,
                Faction      = miniModel.Faction,
                PointCost    = miniModel.PointCost,
                BuildState   = buildState
            };


            _context.Entry(entity).State = EntityState.Added;
            await _context.SaveChangesAsync();

            return(miniModel);
        }