public ActionResult Estates_Destroy([DataSourceRequest]DataSourceRequest request, Estate estate)
        {
            this.estates.Delete(estate.Id);
            this.estates.SaveChanges();

            return Json(new[] { estate }.ToDataSourceResult(request, ModelState));
        }
Пример #2
0
        public Game()
        {
            player = new Player();
            supply = new Supply();

            for(int i =0; i < 7; i++)
            {
                player.Gain( supply.Release("Copper"));
            }
            Card e = new Estate();
            for(int i =0; i < 3; i++)
            {
                player.Gain( e );
            }

            gameState = new GameStateContext(player, supply);
            gameState.StateChange += () =>
                {
                    OnStateChange();
                };

            player.NewHand();
        }
 public ActionResult Estates_Create([DataSourceRequest]DataSourceRequest request, AdministerEstateViewModel estate)
 {
     var newId = 0;
     if (ModelState.IsValid)
     {
         var entity = new Estate
         {
             Name = estate.Name,
             Address = estate.Address,
             Size = estate.Size,
             AuthorId = this.User.Identity.GetUserId()
         };
         
         this.estates.Add(entity);
         this.estates.SaveChanges();
         newId = entity.Id;
     }
     var estateToDisplay = this.estates
         .All()
         .To<AdministerEstateViewModel>()
         .FirstOrDefault(x => x.Id == newId);
     return Json(new[] { estateToDisplay }.ToDataSourceResult(request, ModelState));
 }
Пример #4
0
        public async Task <HttpResponseMessage> Import()
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            MultipartMemoryStreamProvider provider = await Request.Content.ReadAsMultipartAsync();

            HttpContent content = provider.Contents.First();
            Stream      stream  = await content.ReadAsStreamAsync();

            string    fileName = content.Headers.ContentDisposition.FileName.Trim('"');
            DataTable dt       = Excel.ExcelToDataTable(fileName, stream);

            dt.Columns.Add("导入状态");
            dt.Columns.Add("导入备注");
            foreach (DataRow dr in dt.Rows)
            {
                string EstateName = dr[0].ToString();
                if (!string.IsNullOrEmpty(EstateName))
                {
                    Estate estate = db.Estates.FirstOrDefault(w => w.EstateName == EstateName);
                    if (estate != null)
                    {
                        string HouseNo = dr[1].ToString();
                        House  house   = db.Houses.FirstOrDefault(w => w.EstateId == estate.EstateId && w.HouseNo == HouseNo);
                        if (house != null)
                        {
                            Owner owner = db.Owners.FirstOrDefault(w => w.HouseId == house.HouseId);
                            if (owner != null)
                            {
                                try
                                {
                                    Property property = new Property();
                                    property.OwnerId   = owner.OwnerId;
                                    property.PayerName = owner.CheckInName;
                                    property.UnitPrice = decimal.Parse(dr[2].ToString());
                                    string     UnitName = dr[3].ToString();
                                    CostConfig config   = db.CostConfigs.FirstOrDefault(w => w.EstateId == estate.EstateId && w.ConfigType == "property" && w.UnitPrice == property.UnitPrice && w.UnitName == UnitName);
                                    if (config != null)
                                    {
                                        property.ConfigId = config.ConfigId;
                                    }
                                    property.MonthCount = int.Parse(dr[4].ToString());
                                    property.Amount     = decimal.Parse(dr[5].ToString());
                                    property.CreateTime = DateTime.Now;
                                    DateTime PayTime = DateTime.MinValue;
                                    if (DateTime.TryParse(dr[6].ToString(), out PayTime))
                                    {
                                        property.PayTime = PayTime;
                                    }
                                    DateTime StartDate = DateTime.MinValue;
                                    if (DateTime.TryParse(dr[7].ToString(), out StartDate))
                                    {
                                        property.StartDate = StartDate;
                                    }
                                    DateTime EndDate = DateTime.MinValue;
                                    if (DateTime.TryParse(dr[8].ToString(), out EndDate))
                                    {
                                        property.EndDate = EndDate;
                                    }
                                    property.ReceiptNo    = dr[9].ToString();
                                    property.VoucherNo    = dr[10].ToString();
                                    property.OprationName = dr[11].ToString();
                                    property.PayWay       = dr[12].ToString();
                                    property.Remark       = dr[13].ToString();
                                    if (property.PayTime != null)
                                    {
                                        property.Status = 1;
                                    }
                                    if (db.Properties.Count(w => w.OwnerId == property.OwnerId && w.Amount == property.Amount && w.MonthCount == property.MonthCount && w.StartDate == property.StartDate && w.EndDate == property.EndDate) == 0)
                                    {
                                        db.Properties.Add(property);
                                        db.SaveChanges();
                                        dr[14] = "成功";
                                        dr[15] = "新增";
                                    }
                                    else
                                    {
                                        Property newProperty = db.Properties.First(w => w.OwnerId == property.OwnerId && w.Amount == property.Amount && w.MonthCount == property.MonthCount && w.StartDate == property.StartDate && w.EndDate == property.EndDate);
                                        Ricky.ObjectCopy.Copy <Property>(property, newProperty, new string[] { "PropertyId", "PayerName", "UserId" });
                                        db.SaveChanges();
                                        dr[14] = "成功";
                                        dr[15] = "修改";
                                    }
                                }
                                catch (Exception e)
                                {
                                    dr[14] = "失败";
                                    dr[15] = e.Message;
                                }
                            }
                            else
                            {
                                dr[14] = "失败";
                                dr[15] = "没有找到业主";
                            }
                        }
                        else
                        {
                            dr[14] = "失败";
                            dr[15] = "沒有找到此房产";
                        }
                    }
                    else
                    {
                        dr[14] = "失败";
                        dr[15] = "沒有找到此小区";
                    }
                }
                else
                {
                    dr[14] = "失败";
                    dr[15] = "缺少所属小区名称";
                }
            }
            db.Database.ExecuteSqlCommand("update [Owner] set PropertyExpireDate=t.EndDate from (select OwnerId,MAX(EndDate) EndDate from [Property] group by OwnerId)t where [Owner].OwnerId=t.OwnerId and ([Owner].PropertyExpireDate is null or [Owner].PropertyExpireDate<t.EndDate)");
            string fileSaveLocation = HttpContext.Current.Server.MapPath("~/upload/property");

            if (!Directory.Exists(fileSaveLocation))
            {
                Directory.CreateDirectory(fileSaveLocation);
            }
            string Name         = fileName.Substring(0, fileName.LastIndexOf('.'));
            Excel  excel        = new Excel(dt);
            string saveFileName = string.Format("{1}{2}.xlsx", fileSaveLocation, Name, DateTime.Now.ToString("yyyyMMddHHmmssfff"));

            excel.Save(fileSaveLocation + "\\" + saveFileName);
            return(Request.CreateResponse(HttpStatusCode.OK, new { Status = 1, filename = saveFileName }));
        }
Пример #5
0
 public decimal Get_price(Estate estate, decimal price)
 {
     price = new AssetsCalculator().Get_price_fromLandlord(estate);
     return(price += estate.Comission);
 }
Пример #6
0
 public void Remove(Estate estate)
 {
     _context.Estates.Remove(estate);
 }
Пример #7
0
        public override List <Tuple <Trajectory, ESegmentType> > segmentTrajectory(Trajectory trajectory)
        {
            var segments = new List <Tuple <Trajectory, ESegmentType> >();

            var closeThreshold = 2.5;
            var farThreshold   = 4.5;
            var hysteresis     = 0.05;
            var sittingZSlope  = 0.4;

            Double.TryParse(ConfigurationManager.AppSettings["TUGcloseThreshold"], out closeThreshold);
            Double.TryParse(ConfigurationManager.AppSettings["TUGfarThreshold"], out farThreshold);
            Double.TryParse(ConfigurationManager.AppSettings["TUGhysteresis"], out hysteresis);
            double sittingZAngle;

            if (Double.TryParse(ConfigurationManager.AppSettings["TUGsittingZAngle"], out sittingZAngle))
            {
                sittingZSlope = Math.Sin(sittingZAngle * Math.PI / 180);
            }
            Estate     state = Estate.Stand;
            Trajectory t     = new Trajectory();

            t.samplingRate = trajectory.samplingRate;
            long trajectoryLength = trajectory.points.Count;

            for (int i = 0; i < trajectoryLength; i++)
            {
                var p     = trajectory.points[i];
                var slope = trajectory.slopes[i];

                if (p.z < farThreshold && state == Estate.Stand)
                {
                    state = Estate.GettingCloser;
                    segments.Add(new Tuple <Trajectory, ESegmentType>(t, ESegmentType.StandingUp));
                    t = new Trajectory();
                    t.samplingRate = trajectory.samplingRate;
                }
                if (p.z < closeThreshold - hysteresis && state == Estate.GettingCloser)
                {
                    state = Estate.Turning;
                    segments.Add(new Tuple <Trajectory, ESegmentType>(t, ESegmentType.WalkingToSensor));
                    t = new Trajectory();
                    t.samplingRate = trajectory.samplingRate;
                }
                if (p.z > closeThreshold + hysteresis && state == Estate.Turning)
                {
                    state = Estate.GoingAway;
                    segments.Add(new Tuple <Trajectory, ESegmentType>(t, ESegmentType.Turning));
                    t = new Trajectory();
                    t.samplingRate = trajectory.samplingRate;
                }
                if (p.z > farThreshold && state == Estate.GoingAway)
                {
                    state = Estate.Sitting;
                    segments.Add(new Tuple <Trajectory, ESegmentType>(t, ESegmentType.WalkingAwayFromSensor));
                    t = new Trajectory();
                    t.samplingRate = trajectory.samplingRate;
                }
                if (state == Estate.Sitting)
                {
                    if (slope.z > sittingZSlope)
                    {
                        state = Estate.Done;
                        segments.Add(new Tuple <Trajectory, ESegmentType>(t, ESegmentType.SittingDown));
                        t = new Trajectory();
                        t.samplingRate = trajectory.samplingRate;
                    }
                }

                t.add(p, slope);
            }
            if (state == Estate.Sitting)
            {
                segments.Add(new Tuple <Trajectory, ESegmentType>(t, ESegmentType.SittingDown));
                t = new Trajectory();
                t.samplingRate = trajectory.samplingRate;
            }
            return(segments);
        }
Пример #8
0
    public void ExecuteProgress()
    {
        foreach (var eventEntry in EventModifiers.EventData)
        {
            switch (eventEntry.Type)
            {
            case TownEventDataType.IdleBuff:
                for (int i = 0; i < Heroes.Count; i++)
                {
                    if (Heroes[i].Status == HeroStatus.Available)
                    {
                        Heroes[i].AddBuff(new BuffInfo(DarkestDungeonManager.Data.Buffs[eventEntry.StringData],
                                                       BuffDurationType.IdleTownVisit, BuffSourceType.Estate));
                    }
                }
                break;

            case TownEventDataType.IdleResolve:
                for (int i = 0; i < Heroes.Count; i++)
                {
                    if (Heroes[i].Class == eventEntry.StringData)
                    {
                        for (int j = 0; j < eventEntry.NumberData; j++)
                        {
                            Heroes[i].Resolve.AddExperience(Heroes[i].Resolve.NextLevelXP - Heroes[i].Resolve.CurrentXP);
                        }

                        Heroes[i].UpdateResolve();
                    }
                }
                break;

            case TownEventDataType.InActivityBuff:
                for (int i = 0; i < Heroes.Count; i++)
                {
                    if (Heroes[i].Status == HeroStatus.Abbey || Heroes[i].Status == HeroStatus.Tavern)
                    {
                        for (int j = 0; j < eventEntry.NumberData; j++)
                        {
                            Heroes[i].AddBuff(new BuffInfo(DarkestDungeonManager.Data.Buffs[eventEntry.StringData],
                                                           BuffDurationType.IdleTownVisit, BuffSourceType.Estate));
                        }
                    }
                }
                break;
            }
        }

        TriggeredEvent  = null;
        GuaranteedEvent = null;
        EventModifiers.Reset();
        Estate.ExecuteProgress();

        var possibleEvents = DarkestDungeonManager.Data.EventDatabase.Events.FindAll(townEvent => townEvent.IsPossible);

        if (possibleEvents.Count > 0 && EventsOption.Frequency.Count > 3 && RandomSolver.CheckSuccess(EventsOption.Frequency[3]))
        {
            TriggeredEvent = RandomSolver.ChooseBySingleRandom(possibleEvents);
            for (int i = 0; i < DarkestDungeonManager.Data.EventDatabase.Events.Count; i++)
            {
                DarkestDungeonManager.Data.EventDatabase.Events[i].EventTriggered(false);
            }

            TriggeredEvent.EventTriggered(true);
            EventModifiers.IncludeEvent(TriggeredEvent);

            if (TriggeredEvent.Id == "plot_quest_town_invasion_0")
            {
                DarkestSoundManager.PlayOneShot("event:/town/town_event_display_bandit_incursion");
            }
            else if (TriggeredEvent.Tone == TownEventTone.Bad)
            {
                DarkestSoundManager.PlayOneShot("event:/town/town_event_display_bad");
            }
            else if (TriggeredEvent.Tone == TownEventTone.Good)
            {
                DarkestSoundManager.PlayOneShot("event:/town/town_event_display_good");
            }
            else
            {
                DarkestSoundManager.PlayOneShot("event:/town/town_event_display_neutral");
            }
        }

        GenerateQuests();
        SearchMissingHeroes();
    }
Пример #9
0
    public void Load(SaveCampaignData saveData)
    {
        EventModifiers = saveData.eventModifers;

        foreach (var townEvent in DarkestDungeonManager.Data.EventDatabase.Events)
            townEvent.SetDefaultState();

        SaveSlotId = saveData.saveId;
        CurrentWeek = saveData.currentWeek;

        QuestsComleted = saveData.questsCompleted;

        Estate = new Estate(saveData);
        RealmInventory = new RealmInventory(saveData);
        CompletedPlot = saveData.completedPlot;

        Heroes = new List<Hero>();
        for (int i = 0; i < saveData.saveHeroData.Length; i++)
            Heroes.Add(new Hero(Estate, saveData.saveHeroData[i]));
        for (int i = 0; i < saveData.stageCoachData.Length; i++)
            Estate.StageCoach.Heroes.Add(new Hero(Estate, saveData.stageCoachData[i]));
        for (int i = 0; i < saveData.stageEventData.Length; i++)
            Estate.StageCoach.EventHeroes.Add(new Hero(Estate, saveData.stageEventData[i]));
        for (int i = 0; i < saveData.wagonData.Count; i++)
            Estate.NomadWagon.Trinkets.Add(DarkestDungeonManager.Data.Items["trinket"][saveData.wagonData[i]] as Trinket);
        Estate.StageCoach.GraveIndexes = saveData.deathEventData;

        Estate.Abbey.UpdateActivitySlots(saveData);
        Estate.Tavern.UpdateActivitySlots(saveData);
        Estate.Sanitarium.QuirkActivity.UpdateActivitySlots(saveData);
        Estate.Sanitarium.DiseaseActivity.UpdateActivitySlots(saveData);

        Dungeons = saveData.saveDungeonData;
        Quests = saveData.generatedQuests;
        if (Quests.Count == 0 && saveData.InRaid == false)
            GenerateQuests();

        Logs = new List<WeekActivityLog>(saveData.activityLog);
        if (Logs.Count == 0)
            Logs.Add(new WeekActivityLog(CurrentWeek));

        EventsOption = DarkestDungeonManager.Data.EventDatabase.Settings[2];

        if(saveData.currentEvent != "")
        {
            TriggeredEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.currentEvent);
            if (TriggeredEvent != null)
                EventModifiers.EventData.AddRange(TriggeredEvent.Data);
        }

        if(saveData.guaranteedEvent != "")
        {
            GuaranteedEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.guaranteedEvent);
            if (GuaranteedEvent != null)
                EventModifiers.EventData.AddRange(GuaranteedEvent.Data);
        }

        foreach(var saveEventEntry in saveData.eventData)
        {
            var targetEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveEventEntry.EventId);
            if(targetEvent != null)
                targetEvent.UpdateFromSave(saveEventEntry);
        }

        NarrationCampaignInfo = saveData.campaignNarrations;
        NarrationRaidInfo = saveData.raidNarrations;
        NarrationTownInfo = saveData.townNarrations;
    }
Пример #10
0
        private void ChangeCovenantID(LLAgent agent, Estate estate, string[] parameters, UUID invoiceID)
        {
            UUID covenantID;
            if (parameters.Length == 1 && UUID.TryParse(parameters[0], out covenantID))
            {
                estate.CovenantID = covenantID;
                estate.CovenantTimestamp = Utils.DateTimeToUnixTime(DateTime.UtcNow);

                m_estateClient.AddOrUpdateEstate(estate);
            }
            else
            {
                m_log.Warn(agent.Name + " sent an estatechangecovenantid call with unrecognized parameters");
            }
        }
Пример #11
0
        /// <summary>
        /// Hämata data från GUI, fyll i ett lokalt object av Fastighet
        /// för att senare skickas till fastighetMngr
        /// </summary>
        /// <param name="fastighet"></param>
        /// <returns></returns>
        private bool ReadInput(out Estate estate)
        {
            //Create a local estate instance for filling in input
            estate = new Estate();

            //Call a method that returns a complete address object
            Address adr = ReadAddress();

             //If no error message, everything ok for now
            //Set the address of the local estate
            estate.PostAddress = adr;

            //Then set legal type
            if (rbtnHyres.Checked)
              estate.LegalStatus = LegalType.Rental;
            else if   (rbtnInsats.Checked)
              estate.LegalStatus = LegalType.Tenement;
            else
                estate.LegalStatus = LegalType.Ownership;

            //Process price
            bool prisOK = false;
            //Read and test price input in separate method
            estate.Price = ReadPris(out prisOK);

            //SAme for number of rooms
            bool antalRumOK = false;
            estate.NbrRooms = ReadAntalRum(out antalRumOK);

            //return true or false depending on user input.
            //If both price and nr of rooms ok, return true
            return prisOK && antalRumOK;
        }
Пример #12
0
    /*void OnTriggerStay(Collider other)
    {
        if(other.collider.tag == "Player") //test enemigo
        {
            if(other.collider.gameObject.layer == LayerMask.NameToLayer("Unit"))
            {
                if(target == null) target = other.collider.gameObject;
            }
        }
    }
    void OnTriggerExit(Collider other)
    {
        if(other.collider.tag == "Player") //test enemigo
        {
            if(other.collider.gameObject.layer == LayerMask.NameToLayer("Unit"))
            {
                target = null;
            }

        }
    }*/
    void Update()
    {
        hitColliders = Physics.OverlapSphere(transform.position, range);

        if(hitColliders.Length > 0)
        {
            for(int index = 0; index < hitColliders.Length; index++)
            {
                if (hitColliders[index].gameObject.layer == LayerMask.NameToLayer("Unit") && hitColliders[index].tag != this.tag && hitColliders[index].tag != "Untagged")
                //if(hitColliders[index].gameObject.layer == LayerMask.NameToLayer("Unit") && hitColliders[index].tag == "Player2") //test tag
                {
                    if (Physics.Linecast(transform.position, hitColliders[index].transform.position, out lineHit)) //Si la torreta visualiza el objetivo continua
                    {
                        if (DEBUG)
                        {
                            //Debug.Log(lineHit.transform.gameObject);
                            Debug.DrawLine(transform.position, hitColliders[index].transform.position, Color.blue);
                        }
                        if (lineHit.collider == hitColliders[index]) //si hay una colision entre si, se omite el target
                        {
                            if (target == null)
                            {
                                target = hitColliders[index].gameObject; //seguimos el primer objetivo
                            }
                        }
                        //else target = null;
                    }
                }
            }
        }
        if(target != null)
        {
            estate = Estate.active;
            if(fire != null)
            {
                Debug.DrawLine(fire.position, target.transform.position, Color.green);
                Quaternion fireRotation = Quaternion.LookRotation(target.transform.position - fire.position);
                fire.rotation = Quaternion.Slerp(fire.rotation, fireRotation, speed * Time.deltaTime);
                Debug.DrawRay(fire.position, fire.transform.forward * range, Color.red);
            }
            if((firtsAxis != null) && (secondAxis == null)) //movimiento primer eje
            {
                Quaternion newRotation = Quaternion.LookRotation(target.transform.position - transform.position);
                firtsAxis.rotation = Quaternion.Slerp(firtsAxis.rotation, newRotation, speed * Time.deltaTime);
            }
            else
            {
                Quaternion newRotation = Quaternion.LookRotation(target.transform.position - transform.position);

                firtsAxis.rotation = Quaternion.Slerp(firtsAxis.rotation, newRotation, speed * Time.deltaTime);
                secondAxis.rotation = Quaternion.Slerp(secondAxis.rotation, newRotation, speed * Time.deltaTime);
            }

            //movimiento fire

            ray = new Ray (fire.position, fire.transform.forward * range);

            if(Physics.Raycast(ray, out hit)) //ok
            {
                time = time + Time.deltaTime;
                if(time > timeReload)
                {
                    if(hit.collider.gameObject == target)
                    {
                        hit.collider.GetComponent<UnitConfiguration>().health -= Random.Range(1,10);
                        hit.collider.transform.FindChild("UI").GetComponent<UpdateHealth>().UpdateHealthColor();

                        GetComponent<AudioSource>().PlayOneShot(shoot);

                        if(hit.collider.GetComponent<UnitConfiguration>().health <= 0)
                        {
                            hit.collider.GetComponent<UnitIA>().Eliminate();
                            target = null;
                        }
                    }
                    else //interseccion
                    {
                        if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Unit") && hit.collider.tag != this.tag && hit.collider.tag != "Untagged")
                        {
                            target = hit.collider.gameObject;
                        }
                    }
                    time = 0;
                }
            }
        }
        else //initial rotation
        {
            firtsAxis.rotation = Quaternion.Slerp(firtsAxis.rotation, resetFirstAxis, speed * Time.deltaTime);
            secondAxis.rotation = Quaternion.Slerp(firtsAxis.rotation, resetSecondAxis, speed * Time.deltaTime);
            ///if (firtsAxis.rotation == resetFirstAxis) GetComponent<AudioSource>().Stop();
        }
    }
Пример #13
0
 void Start()
 {
     estate = Estate.inactive;
     resetFirstAxis = firtsAxis.transform.rotation;
     resetSecondAxis = secondAxis.transform.rotation;
 }
Пример #14
0
        static Estate CreateNew()
        {
            var e = new Estate();

            e.ClientID = "ObjektvisionTest";

            #region Address
            e.Address = new Address()
            {
                MunicipalityCode = 91,
                City             = "Helsinki",
                PostalCode       = "00180",
                StreetAddress    = "Energiakatu 6",
                Coordinate       = new Coordinate()
                {
                    System = CoordinateSystem.WGS84,
                    X      = (decimal)60.16613,
                    Y      = (decimal)24.903131
                },
                CountryCode = "FI"
            };
            #endregion

            #region Attachments
            var attach = new List <AbstractAttachment>();
            attach.Add(new AttachmentImage()
            {
                Category = ImageCategories.Exterior,
                ClientID = "image1.jpg",
                Content  = new AttachmentRemoteContent()
                {
                    URL = "http://1.bp.blogspot.com/-FtiNAuEFPYU/VLVzq5_gjxI/AAAAAAACqWo/2QX5ixVjfpw/s1600/Nice%2520Jan%25202015%2520416.JPG"
                },
                Description = "A nice view of the castle"
            });
            attach.Add(new AttachmentLink()
            {
                Description = "A link to something",
                URL         = "https://klockren.nu/"
            });
            e.Attachments = attach.ToArray();
            #endregion

            #region Contacts
            //Use estate.Contacts instead of legacy estate.Contact. Limited to two contacts at the moment
            e.Contacts = new List <Contact>()
            {
                new Contact()
                {
                    CellPhone = "073-123 456",
                    Email     = "*****@*****.**",
                    Name      = "Some Testperson",
                    Title     = "CTO",
                    Phone     = "08-123 456",
                    Image     = new ContactImage()
                    {
                        ClientID = "contactimage.jpg",
                        Content  = new AttachmentBase64Content()
                        {
                            Base64EncodedContent = "R0lGODlhEAALAMZwADQyKTY1KTg3KTo4Kzo4LD46LT08LTs+Oz8+M0I/MEBAOURBM0BCQERDOUZFOERFREdHOUtHOEdIR0xJOUxKO0lKR1FOPU9OQ1VRP1dTQFhUQllUQ1hXTVtXRV1ZR15ZRlhZWGBb" +
                                                   "SFtdV2JdSmFfUGJhVGdhT2diTmdjT2RlZGtlUWhmXWhoYW5pVnJtWHhzY3x3ZIF4Ynp6coJ+bIh+Z4CAgIWAc4aGhoqHf46Id4iIiI2KfY2LjZWRgpaSg5SVlJ2UgpeVj5uZm6Ccj56elqSdkqeeh5+g" +
                                                   "n6agkaSgmKGioKuporKplq2tqbOysLe2sbe3t7q6tsG8ssK9tMW9rsjGvsvJyczKwtDOyM/Oy9TSzdzX0t3Yz9zb2uHf2+Ph4ebi2eXk4efn5+np6erq6u3t7PLx7/Ly8fX19fb29fj28vj39vn5+Pr5" +
                                                   "+P39/P7+/v///////////////////////////////////////////////////////////////ywAAAAAEAALAAAHiIBwgmqChYaCV4VgXIeGWD2FbUZSbodvVS07hlQ0Pl5rbGlaQyoeS4ZhTEBTSDAm" +
                                                   "IR0aJGdkOjdbNU5mUFYzHxMJFFlwR0IHKzhFXxI8LxgJAk2CPwwPIi4xOUk2GxEFF2iCYiApLBknKCMWDQsGUYZjQQ4EAwEACCUQT41wXUoVCjjIIFLmUCAAOw=="
                        }
                    }
                },
                new Contact()
                {
                    CellPhone = "073-456 123",
                    Email     = "*****@*****.**",
                    Name      = "SomeOther Testperson",
                    Title     = "CEO",
                    Phone     = "08-456 123",
                    Image     = new ContactImage()
                    {
                        ClientID = "contactimage2.jpg",
                        Content  = new AttachmentRemoteContent()
                        {
                            URL = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Donald_Trump_August_19,_2015_(cropped).jpg/220px-Donald_Trump_August_19,_2015_(cropped).jpg"
                        }
                    }
                }
            }.ToArray();
            #endregion

            #region Premise properties
            var display = new Premise();
            display.TotalArea        = 500;
            display.AdjustablePlan   = false;
            display.BuildYear        = 1984;
            display.RebuildYear      = 2009;
            display.Floor            = 2;
            display.FloorsInBuilding = 4;
            display.Rooms            = 5;
            //Limited to 150 characters.
            display.Description =
                "A short selling description used in lists. If this is not given, we will take the first 150 characters from the ExtendedDescription";
            display.ExtendedDescription =
                "A much longer description can be entered here. Is used in the long description on the ad-pages.";
            display.Types =
                new[]
            {
                PremiseTypes.Office,
                PremiseTypes.OfficeHotel,
                PremiseTypes.Shop
            };
            display.Contract = new ContractPremise()
            {
                AverageFeePerSquareMeterAndYear = new PriceWithInfo()
                {
                    Amount = 500, Currency = "EUR", Info = "Best prices in town"
                },
                ContractType = ContractPremiseType.Sale,
                //ContractType = ContractPremiseType.Rent,
                //ContractType = ContractPremiseType.SaleAndRent,
                PossessionDate = new DateAndTime {
                    Value = DateTime.Now.AddMonths(1)
                },
                PossessionText = "Access within a month",

                //Price is only applicable if the type is Sale or SaleAndRent
                Price = new PriceWithInfo {
                    Amount = 1000000, Currency = "USD", Info = "One MILLION dollars!"
                }
            };

            display.RentSurfaces = new[]
            {
                new RentSurface {
                    MaxArea = 500, MinArea = 10, Type = PremiseSurfaceType.Office
                },
                new RentSurface {
                    MaxArea = 300, MinArea = 20, Type = PremiseSurfaceType.Shop
                }
            };

            //Only DisplayMode.Public and DisplayMode.Private are used
            display.Status = DisplayMode.Public;

            //Legacy stuff for multiple types, no longer supported. InternetDisplay should be an array with only one element of type Premise in it.
            e.InternetDisplay = new InternetDisplay[] { display };
            #endregion

            return(e);
        }
Пример #15
0
        private void ChangeEstateAccess(LLAgent agent, Estate estate, string[] parameters, UUID invoiceID)
        {
            uint flagsValue;
            UUID agentOrGroupID;

            if (parameters.Length == 3 && UInt32.TryParse(parameters[1], out flagsValue) && UUID.TryParse(parameters[2], out agentOrGroupID))
            {
                EstateAccessDeltaFlags flags = (EstateAccessDeltaFlags)flagsValue;

                // Non-owners can only modify the ban list
                if (flags.HasFlag(EstateAccessDeltaFlags.AllowedAgentAdd) ||
                    flags.HasFlag(EstateAccessDeltaFlags.AllowedAgentRemove) ||
                    flags.HasFlag(EstateAccessDeltaFlags.AllowedGroupAdd) ||
                    flags.HasFlag(EstateAccessDeltaFlags.AllowedGroupRemove) ||
                    flags.HasFlag(EstateAccessDeltaFlags.ManagerAdd) ||
                    flags.HasFlag(EstateAccessDeltaFlags.ManagerRemove))
                {
                    if (agent.ID != estate.OwnerID && !m_permissions.IsGridAdmin(agent))
                    {
                        m_log.Warn("Non-manager " + agent.Name + " attempted to make " + flags + " changes to the estate access list");
                        return;
                    }
                }

                // Ignore any attempted changes to the estate owner's access level
                if (agentOrGroupID == estate.OwnerID)
                {
                    m_log.Warn("Ignoring " + flags + " estate access change for estate owner " + estate.OwnerID);
                    return;
                }

                if (flags.HasFlag(EstateAccessDeltaFlags.AllowedAgentAdd))
                    estate.AddUser(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.AllowedAgentRemove))
                    estate.RemoveUser(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.AllowedGroupAdd))
                    estate.AddGroup(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.AllowedGroupRemove))
                    estate.RemoveGroup(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.BannedAgentAdd))
                    estate.AddBannedUser(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.BannedAgentRemove))
                    estate.RemoveBannedUser(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.ManagerAdd))
                    estate.AddManager(agentOrGroupID);
                if (flags.HasFlag(EstateAccessDeltaFlags.ManagerRemove))
                    estate.RemoveManager(agentOrGroupID);

                // TODO: Handle EstateAccessDeltaFlags.ApplyToAllEstates and EstateAccessDeltaFlags.ApplyToManagedEstates

                if (!flags.HasFlag(EstateAccessDeltaFlags.NoReply))
                {
                    // Send a response
                    SendEstateAccessList(agent, estate, EstateAccessFlags.AllowedAgents | EstateAccessFlags.AllowedGroups |
                        EstateAccessFlags.BannedAgents | EstateAccessFlags.Managers, invoiceID);
                }
            }
            else
            {
                m_log.Warn(agent.Name + " sent an estateaccessdelta call with unrecognized parameters");
            }
        }
Пример #16
0
 private string CreateDescription(Estate estate)
 {
     return($"<b>{estate.Freitexte.Objekttitel}</b>");
 }
Пример #17
0
        private void SendDetailedEstateData(LLAgent agent, Estate estate, UUID invoiceID)
        {
            string[] parameters = new string[]
            {
                estate.Name,
                estate.OwnerID.ToString(),
                estate.ID.ToString(),
                ((uint)estate.EstateFlags).ToString(),
                ((int)(estate.SunHour * 1024f)).ToString(),
                "1", // ParentEstateID
                estate.CovenantID.ToString(),
                estate.CovenantTimestamp.ToString(),
                "1", // SendToAgentOnly
                estate.AbuseEmail
            };

            SendEstateOwnerMessage(agent, "estateupdateinfo", parameters, invoiceID);
        }
Пример #18
0
 public virtual bool WillBuyEstate(Estate e)
 {
     return(false);
 }
Пример #19
0
        private void SendEstateAccessList(LLAgent agent, Estate estate, EstateAccessFlags flags, UUID invoiceID)
        {
            HashSet<UUID> agents = null;
            HashSet<UUID> groups = null;
            HashSet<UUID> bans = null;
            HashSet<UUID> managers = null;

            if ((flags & EstateAccessFlags.AllowedAgents) != 0)
                agents = estate.GetUsers();
            if ((flags & EstateAccessFlags.AllowedGroups) != 0)
                groups = estate.GetGroups();
            if ((flags & EstateAccessFlags.BannedAgents) != 0)
                bans = estate.GetBannedUsers();
            if ((flags & EstateAccessFlags.Managers) != 0)
                managers = estate.GetManagers();

            List<string> parameters = new List<string>()
            {
                estate.ID.ToString(),
                ((uint)flags).ToString(),
                (agents != null) ? agents.Count.ToString() : "0",
                (groups != null) ? groups.Count.ToString() : "0",
                (bans != null) ? bans.Count.ToString() : "0",
                (managers != null) ? managers.Count.ToString() : "0"
            };

            if (agents != null)
            {
                foreach (UUID id in agents)
                    parameters.Add(id.ToString());
            }
            if (groups != null)
            {
                foreach (UUID id in groups)
                    parameters.Add(id.ToString());
            }
            if (bans != null)
            {
                foreach (UUID id in bans)
                    parameters.Add(id.ToString());
            }
            if (managers != null)
            {
                foreach (UUID id in managers)
                    parameters.Add(id.ToString());
            }

            SendEstateOwnerMessage(agent, "setaccess", parameters.ToArray(), invoiceID);
        }
Пример #20
0
    public void Load(SaveCampaignData saveData)
    {
        EventModifiers = saveData.EventModifers;

        foreach (var townEvent in DarkestDungeonManager.Data.EventDatabase.Events)
        {
            townEvent.SetDefaultState();
        }

        CurrentWeek    = saveData.CurrentWeek;
        QuestsComleted = saveData.QuestsCompleted;

        Estate         = new Estate(saveData);
        RealmInventory = new RealmInventory(saveData);
        CompletedPlot  = saveData.CompletedPlot;

        Heroes = new List <Hero>();
        saveData.RosterHeroes.ForEach(hero => Heroes.Add(new Hero(Estate, hero)));
        saveData.StageCoachHeroes.ForEach(hero => Estate.StageCoach.Heroes.Add(new Hero(Estate, hero)));
        saveData.StageEventHeroes.ForEach(hero => Estate.StageCoach.EventHeroes.Add(new Hero(Estate, hero)));
        saveData.WagonTrinkets.ForEach(trinketName => Estate.NomadWagon.Trinkets.Add(DarkestDungeonManager.Data.Items["trinket"][trinketName] as Trinket));

        Estate.StageCoach.GraveIndexes = saveData.DeathEventData;
        Estate.Abbey.UpdateActivitySlots(saveData);
        Estate.Tavern.UpdateActivitySlots(saveData);
        Estate.Sanitarium.QuirkActivity.UpdateActivitySlots(saveData);
        Estate.Sanitarium.DiseaseActivity.UpdateActivitySlots(saveData);

        Dungeons = saveData.DungeonProgress;
        Quests   = saveData.GeneratedQuests;
        if (Quests.Count == 0 && saveData.InRaid == false)
        {
            GenerateQuests();
        }

        Logs = new List <WeekActivityLog>(saveData.ActivityLog);
        if (Logs.Count == 0)
        {
            Logs.Add(new WeekActivityLog(CurrentWeek));
        }

        EventsOption = DarkestDungeonManager.Data.EventDatabase.Settings[2];

        if (saveData.CurrentEvent != "")
        {
            TriggeredEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.CurrentEvent);
            if (TriggeredEvent != null)
            {
                EventModifiers.EventData.AddRange(TriggeredEvent.Data);
            }
        }

        if (saveData.GuaranteedEvent != "")
        {
            GuaranteedEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.GuaranteedEvent);
            if (GuaranteedEvent != null)
            {
                EventModifiers.EventData.AddRange(GuaranteedEvent.Data);
            }
        }

        foreach (var saveEventEntry in saveData.EventData)
        {
            var targetEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveEventEntry.EventId);
            if (targetEvent != null)
            {
                targetEvent.UpdateFromSave(saveEventEntry);
            }
        }

        NarrationCampaignInfo = saveData.CampaignNarrations;
        NarrationRaidInfo     = saveData.RaidNarrations;
        NarrationTownInfo     = saveData.TownNarrations;
    }
Пример #21
0
        private void SetRegionInfo(LLAgent agent, Estate estate, string[] parameters)
        {
            if (parameters.Length != 9)
            {
                m_log.Warn(agent.Name + " sent a setregioninfo call with " + parameters.Length + " parameters");
                return;
            }

            bool blockTerraform = ParamStringToBool(parameters[0]);
            bool noFly = ParamStringToBool(parameters[1]);
            bool allowDamage = ParamStringToBool(parameters[2]);
            bool blockLandResell = !ParamStringToBool(parameters[3]);
            float maxAgents;
            Single.TryParse(parameters[4], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out maxAgents);
            float objectBonusFactor;
            Single.TryParse(parameters[5], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out objectBonusFactor);
            ushort matureLevel;
            UInt16.TryParse(parameters[6], NumberStyles.Integer, Utils.EnUsCulture.NumberFormat, out matureLevel);
            bool restrictPushObject = ParamStringToBool(parameters[7]);
            bool allowParcelChanges = ParamStringToBool(parameters[8]);

            estate.EstateFlags = ToggleRegionFlag(estate.EstateFlags, RegionFlags.BlockTerraform, blockTerraform);
            estate.EstateFlags = ToggleRegionFlag(estate.EstateFlags, RegionFlags.NoFly, noFly);
            estate.EstateFlags = ToggleRegionFlag(estate.EstateFlags, RegionFlags.AllowDamage, allowDamage);
            estate.EstateFlags = ToggleRegionFlag(estate.EstateFlags, RegionFlags.RestrictPushObject, restrictPushObject);
            estate.EstateFlags = ToggleRegionFlag(estate.EstateFlags, RegionFlags.AllowParcelChanges, allowParcelChanges);
            estate.MaxAgents = (uint)maxAgents;
            estate.MatureLevel = matureLevel;
            estate.ObjectBonusFactor = objectBonusFactor;

            m_estateClient.AddOrUpdateEstate(estate);

            BroadcastRegionInfo();
        }
        public decimal CalculateFullPrice(Estate estate, decimal amount)
        {
            var comission = CalculateComission(amount);

            return(amount + comission);
        }
Пример #23
0
        private void SetRegionTerrain(LLAgent agent, Estate estate, string[] parameters)
        {
            if (parameters.Length != 9)
            {
                m_log.Warn(agent.Name + " sent a setregionterrain call with " + parameters.Length + " parameters");
                return;
            }

            float waterHeight;
            Single.TryParse(parameters[0], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out waterHeight);
            float terrainRaiseLimit;
            Single.TryParse(parameters[1], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out terrainRaiseLimit);
            float terrainLowerLimit;
            Single.TryParse(parameters[2], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out terrainLowerLimit);
            bool useEstateSun = ParamStringToBool(parameters[3]);
            bool useFixedSun = ParamStringToBool(parameters[4]);
            float sunHour;
            Single.TryParse(parameters[5], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out sunHour);
            bool estateGlobalSun = ParamStringToBool(parameters[6]);
            bool estateFixedSun = ParamStringToBool(parameters[7]);
            float estateSunHour;
            Single.TryParse(parameters[8], NumberStyles.Float, Utils.EnUsCulture.NumberFormat, out estateSunHour);

            if (m_regionInfo != null)
            {
                m_regionInfo.WaterHeight = waterHeight;
                m_regionInfo.UseEstateSun = useEstateSun;
                m_regionInfo.UseFixedSun = useFixedSun;
            }

            estate.TerrainRaiseLimit = terrainRaiseLimit;
            estate.TerrainLowerLimit = terrainLowerLimit;
            estate.SunHour = sunHour;
            estate.UseGlobalSun = estateGlobalSun;
            estate.UseFixedSun = estateFixedSun;
        }
Пример #24
0
 // Use this for initialization
 void Start()
 {
     m_fAngleY = 0.0f;
     m_fAngleWake = 0.0f;
     m_Fer = gameObject.transform.FindChild("Head").FindChild("Fer").GetComponent<CFerASouder>();
     m_Hand = gameObject.transform.FindChild("Head").FindChild("Hand").GetComponent<CHand>();
     m_fTimerJump = 0.0f;
     m_fTimerWakeUp = 0.0f;
     m_fTimerDie = 0.0f;
     m_eState = Estate.e_Start;
     m_bLaunchMenu = false;
     m_Game = GameObject.Find("_Game").GetComponent<CGame>();
     gameObject.transform.FindChild("Texture").GetComponent<CSpriteSheet>().SetAnim(false);
 }
Пример #25
0
        private void SetTextureDetail(LLAgent agent, Estate estate, string[] parameters)
        {
            for (int i = 0; i < parameters.Length; i++)
            {
                byte corner;
                UUID textureID;

                string[] args = parameters[i].Split(' ');
                if (args.Length == 2 && Byte.TryParse(args[0], out corner) && UUID.TryParse(args[1], out textureID))
                {
                    switch (corner)
                    {
                        case 0:
                            estate.TerrainDetail0 = textureID; break;
                        case 1:
                            estate.TerrainDetail1 = textureID; break;
                        case 2:
                            estate.TerrainDetail2 = textureID; break;
                        case 3:
                            estate.TerrainDetail3 = textureID; break;
                    }
                }
            }

            BroadcastRegionInfo();
        }
 public void Add(Estate estate)
 {
     Estates.Add(estate);
 }
Пример #27
0
        private void SetTextureHeights(LLAgent agent, Estate estate, string[] parameters)
        {
            for (int i = 0; i < parameters.Length; i++)
            {
                byte corner;
                float start;
                float range;

                string[] args = parameters[i].Split(' ');
                if (args.Length == 3 && Byte.TryParse(args[0], out corner) && Single.TryParse(args[1], out start) && Single.TryParse(args[2], out range))
                {
                    switch (corner)
                    {
                        case 0:
                            estate.TerrainStartHeight00 = start;
                            estate.TerrainHeightRange00 = range;
                            break;
                        case 1:
                            estate.TerrainStartHeight01 = start;
                            estate.TerrainHeightRange01 = range;
                            break;
                        case 2:
                            estate.TerrainStartHeight10 = start;
                            estate.TerrainHeightRange10 = range;
                            break;
                        case 3:
                            estate.TerrainStartHeight11 = start;
                            estate.TerrainHeightRange11 = range;
                            break;
                    }
                }
            }

            BroadcastRegionInfo();
        }
Пример #28
0
 public decimal Get_poundage(Estate estate, decimal price)
 {
     return(price * 0.032m);
 }
Пример #29
0
        public decimal Get_price_fromLandlord(Estate estate)
        {
            var price = GetInitPrice(estate);

            return(price);
        }
Пример #30
0
        protected override decimal CalculateComission(Estate estate)
        {
            decimal comission = 0.055m;

            return(comission);
        }
Пример #31
0
        public ActionResult Edit(IEnumerable <HttpPostedFileBase> attachments, Estate record, HttpPostedFileBase uploadfile, HttpPostedFileBase fileDosya)
        {
            var    languages = LanguageManager.GetLanguages();
            string lang      = "";

            if (RouteData.Values["lang"] == null)
            {
                lang = "tr";
            }
            else
            {
                lang = RouteData.Values["lang"].ToString();
            }
            var list = new SelectList(languages, "Culture", "Language");

            ViewBag.LanguageList = list;
            if (ModelState.IsValid)
            {
                //if (uploadfile != null && uploadfile.ContentLength > 0)
                //{
                //    Random random = new Random();
                //    int rand = random.Next(1000, 99999999);
                //    new ImageHelper(280, 240).SaveThumbnail(uploadfile, "/Content/images/Photos/", Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(uploadfile.FileName));
                //    record.Photo = "/Content/images/Photos/" + Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(uploadfile.FileName);
                //}

                if (Session["ModifiedImageId"] != null)
                {
                    record.Photo = "/Content/images/userfiles/" + Session["ModifiedImageId"].ToString() + Session["WorkingImageExtension"].ToString();
                    ImageHelperNew.DestroyImageCashAndSession(0, 0);
                }

                if (RouteData.Values["id"] != null)
                {
                    int  nid      = 0;
                    bool isnumber = int.TryParse(RouteData.Values["id"].ToString(), out nid);
                    if (isnumber)
                    {
                        if (fileDosya != null)
                        {
                            fileDosya.SaveAs(Server.MapPath("/Content/images/estates/") + fileDosya.FileName);
                            record.EmlakDosyasi = "/Content/images/estates/" + fileDosya.FileName;
                        }


                        record.Id = nid;
                        ViewBag.ProcessMessage = EstateManager.EditEstate(record);
                        //return View(record);
                        foreach (var item in attachments)
                        {
                            if (item != null && item.ContentLength > 0)
                            {
                                Random random = new Random();
                                int    rand   = random.Next(1000, 99999999);
                                new ImageHelper(1024, 768).SaveThumbnail(item, "/Content/images/userfiles/", Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(item.FileName));
                                Photo p = new Photo();
                                p.CategoryId  = (int)PhotoType.Estate;
                                p.ItemId      = record.Id;
                                p.Path        = "/Content/images/userfiles/" + Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(item.FileName);
                                p.Thumbnail   = "/Content/images/userfiles/" + Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(item.FileName);
                                p.Online      = true;
                                p.SortOrder   = 9999;
                                p.Language    = lang;
                                p.TimeCreated = DateTime.Now;
                                p.Title       = "Emlak";
                                PhotoManager.Save(p);
                            }
                        }

                        return(RedirectToAction("Index", "Estate"));
                    }
                    else
                    {
                        ViewBag.ProcessMessage = false;
                        return(View(record));
                    }
                }
                else
                {
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
Пример #32
0
        /// <summary>
        /// Creates a new card based on how many cards have already been made.
        /// </summary>
        /// <param name="card">
        /// The name of the card to be created.
        /// </param>
        /// <returns>
        /// The new created card.
        /// </returns>
        public static Card CreateCard(CardName card)
        {
            Contract.Requires(card != CardName.Backside & card != CardName.Empty);

            Contract.Ensures(Contract.Result<Card>().Name == card);

            Card c;
            switch (card)
            {
                case CardName.Copper:
                    c = new Copper();
                    break;
                case CardName.Silver:
                    c = new Silver();
                    break;
                case CardName.Gold:
                    c = new Gold();
                    break;
                case CardName.Curse:
                    c = new Curse();
                    break;
                case CardName.Estate:
                    c = new Estate();
                    break;
                case CardName.Duchy:
                    c = new Duchy();
                    break;
                case CardName.Province:
                    c = new Province();
                    break;
                case CardName.Gardens:
                    c = new Gardens();
                    break;
                case CardName.Cellar:
                    c = new Cellar();
                    break;
                case CardName.Chapel:
                    c = new Chapel();
                    break;
                case CardName.Chancellor:
                    c = new Chancellor();
                    break;
                case CardName.Village:
                    c = new Village();
                    break;
                case CardName.Woodcutter:
                    c = new Woodcutter();
                    break;
                case CardName.Workshop:
                    c = new Workshop();
                    break;
                case CardName.Feast:
                    c = new Feast();
                    break;
                case CardName.Moneylender:
                    c = new Moneylender();
                    break;
                case CardName.Remodel:
                    c = new Remodel();
                    break;
                case CardName.Smithy:
                    c = new Smithy();
                    break;
                case CardName.ThroneRoom:
                    c = new ThroneRoom();
                    break;
                case CardName.CouncilRoom:
                    c = new CouncilRoom();
                    break;
                case CardName.Festival:
                    c = new Festival();
                    break;
                case CardName.Laboratory:
                    c = new Laboratory();
                    break;
                case CardName.Library:
                    c = new Library();
                    break;
                case CardName.Market:
                    c = new Market();
                    break;
                case CardName.Mine:
                    c = new Mine();
                    break;
                case CardName.Adventurer:
                    c = new Adventurer();
                    break;
                case CardName.Bureaucrat:
                    c = new Bureaucrat();
                    break;
                case CardName.Militia:
                    c = new Militia();
                    break;
                case CardName.Spy:
                    c = new Spy();
                    break;
                case CardName.Thief:
                    c = new Thief();
                    break;
                case CardName.Witch:
                    c = new Witch();
                    break;
                case CardName.Moat:
                    c = new Moat();
                    break;
                default:
                    throw new NotImplementedException("Tried to create a card that was not implemented when CardFactory was last updated.");
            }

            c.Initialize(card, CardsMade[card]);
            CardsMade[card] += 1;
            createdCards.Add(c, true);
            return c;
        }
Пример #33
0
        public ActionResult Add(Estate record, HttpPostedFileBase uploadfile, IEnumerable <HttpPostedFileBase> attachments, HttpPostedFileBase fileDosya)
        {
            var languages = LanguageManager.GetLanguages();
            //string lang = "";
            //if (RouteData.Values["lang"] == null)
            //    lang = "tr";
            //else lang = RouteData.Values["lang"].ToString();
            //lang =
            var countries = EstateManager.GetCountryList();
            var list      = new SelectList(languages, "Culture", "Language");

            ViewBag.LanguageList = list;
            var countrylist = new SelectList(countries, "Id", "Name");

            ViewBag.Country = countrylist;
            if (ModelState.IsValid)
            {
                if (Session["ModifiedImageId"] != null)
                {
                    record.Photo = "/Content/images/userfiles/" + Session["ModifiedImageId"].ToString() + Session["WorkingImageExtension"].ToString();
                    ImageHelperNew.DestroyImageCashAndSession(0, 0);
                }
                else
                {
                    record.Photo = "/Content/images/front/noimage.jpeg";
                }

                if (fileDosya != null)
                {
                    fileDosya.SaveAs(Server.MapPath("/Content/images/estates/") + fileDosya.FileName);
                    record.EmlakDosyasi = "/Content/images/estates/" + fileDosya.FileName;
                }

                ViewBag.ProcessMessage = EstateManager.AddEstate(record);
                Session.Remove("UploadType");
                foreach (var item in attachments)
                {
                    if (item != null && item.ContentLength > 0)
                    {
                        Random random = new Random();
                        int    rand   = random.Next(1000, 99999999);
                        new ImageHelper(1024, 768).SaveThumbnail(item, "/Content/images/userfiles/", Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(item.FileName));
                        Photo p = new Photo();
                        p.CategoryId = (int)PhotoType.Estate;
                        p.ItemId     = record.Id;
                        p.Path       = "/Content/images/userfiles/" + Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(item.FileName);
                        p.Thumbnail  = "/Content/images/userfiles/" + Utility.SetPagePlug(record.Header) + "_" + rand + Path.GetExtension(item.FileName);
                        p.Online     = true;
                        p.SortOrder  = 9999;

                        p.Language    = record.Language;
                        p.TimeCreated = DateTime.Now;
                        p.Title       = record.Header;
                        PhotoManager.Save(p);
                    }
                }

                ModelState.Clear();
                return(View());
            }
            else
            {
                return(View());
            }
        }
Пример #34
0
        public async Task <IActionResult> Edit(int id, [Bind("EstateId,EstateTypeId,SubEstateType,Region,StatusId,CityId,Price,CreateDuration,Area,BedRooms,BathRooms,Floors,Address,ShortDescription,Description,Tags,Facilities")] Estate estate, IEnumerable <IFormFile> images)
        {
            int userId = _userService.GetUserIdByUserName(User.Identity.Name);

            var pics = _context.EstateImages
                       .Where(e => e.EstateId == estate.EstateId)
                       .ToList();

            estate.UserId     = userId;
            estate.CreateDate = DateTime.Now;
            estate.IsDeleted  = false;
            if (id != estate.EstateId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                if (!images.Any())
                {
                    estate.EstateImages = pics;
                }

                if (images.Any())
                {
                    string imagePath = "";
                    foreach (var names in pics)
                    {
                        imagePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\EstateImages",
                                                 names.Image);

                        if (System.IO.File.Exists(imagePath))
                        {
                            System.IO.File.Delete(imagePath);

                            _context.EstateImages.Remove(names);
                        }
                    }


                    foreach (var file in images)
                    {
                        if (file.Length > 0)
                        {
                            var fileName = Path.GetFileName(file.FileName);
                            var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\EstateImages", fileName);
                            await using (var fileSteam = new FileStream(filePath, FileMode.Create))
                            {
                                await file.CopyToAsync(fileSteam);
                            }


                            EstateImage estateImage = new EstateImage()
                            {
                                EstateId = id,
                                Image    = fileName
                            };
                            _context.EstateImages.Update(estateImage);
                            await _context.SaveChangesAsync();
                        }
                    }
                }

                try
                {
                    _context.Update(estate);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EstateExists(estate.EstateId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CityId"]       = new SelectList(_context.Cities, "CityId", "CityName", estate.CityId);
            ViewData["EstateTypeId"] = new SelectList(_context.EstateTypes, "EstateTypeId", "Type", estate.EstateTypeId);
            ViewData["UserId"]       = new SelectList(_context.Users, "UserId", "Email", estate.UserId);
            return(View(estate));
        }
        public void SetUp()
        {
            estate = new Estate();
            var user = new User();

            sourceCharacter = new Character();
            targetCharacter = new Character();
            user.Characters.Add(new TestCharacter().SetEstate(estate));
            user.Characters.Add(sourceCharacter);
            user.Characters.Add(targetCharacter);

            file = new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("This is a dummy file")), 0, 0, "Data",
                                "dummy.txt");

            addObjectProtectionRequest = new AddObjectProtectionRequest
            {
                ProtectionType = ObjectProtectionType.Estate,
                ObjectId       = estate.Id,
                Amount         = 1
            };

            addSerialSlotRequest = new AddSerialSlotRequest
            {
                Amount = 1
            };

            var characters = new List <Character>
            {
                new TestCharacter().SetEstate(estate),
                new TestCharacter()
            };

            database                  = new Mock <IDatabase>();
            characterService          = new Mock <ICharacterService>();
            userService               = new Mock <IUserService>();
            purchaseService           = new Mock <IPurchaseService>();
            adminActionService        = new Mock <IAdminActionService>();
            emailSender               = new Mock <IEmailSender>();
            mtaManager                = new Mock <IMtaManager>();
            orderService              = new Mock <IOrderService>();
            premiumUserLibraryManager = new Mock <IPremiumUserLibraryManager>();
            tempDatabaseCleaner       = new Mock <ITempDatabaseCleaner>();
            filesManager              = new Mock <IFilesManager>();
            customInteriorManager     = new Mock <ICustomInteriorManager>();
            httpContextReader         = new Mock <IHttpContextReader>();

            database.Setup(d => d.CharacterRepository.GetAccountCharactersWithEstatesAndVehicles(It.IsAny <int>()))
            .ReturnsAsync(characters);
            database.Setup(d => d.BeginTransaction()).Returns(new DatabaseTransaction());
            database.Setup(d => d.EstateRepository.Update(It.IsNotNull <Estate>())).ReturnsAsync(true);
            database.Setup(d => d.UserRepository.FindById(It.IsAny <int>())).ReturnsAsync(user);
            database.Setup(d => d.UserRepository.Update(It.IsAny <User>())).ReturnsAsync(true);
            database.Setup(d => d.CharacterRepository.Find(It.IsAny <string>()))
            .ReturnsAsync(new Character());
            userService.Setup(us => us.GetUserWithCharacters(It.IsAny <int>())).ReturnsAsync(user);
            characterService.Setup(cs => cs.HasAnyCharacterEstate(It.IsAny <IEnumerable <Character> >(), It.IsAny <int>()))
            .ReturnsAsync(estate);
            purchaseService.Setup(ps => ps.CreatePurchase(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(new Purchase());
            orderService.Setup(os => os.CreateOrder(It.IsAny <Order>())).ReturnsAsync(new Order());
            premiumUserLibraryManager.Setup(pm => pm.AddFileToLibrary(It.IsAny <IFormFile>(),
                                                                      It.IsAny <PremiumFileType>(), It.IsAny <string>(), It.IsAny <int?>()))
            .ReturnsAsync(new PremiumFile());
            SetUpDefaultExecuteTransferCharacter();

            premiumAccountManager = new PremiumAccountManager(database.Object, characterService.Object,
                                                              userService.Object, purchaseService.Object, adminActionService.Object, emailSender.Object,
                                                              mtaManager.Object, orderService.Object, premiumUserLibraryManager.Object, tempDatabaseCleaner.Object,
                                                              filesManager.Object, customInteriorManager.Object, httpContextReader.Object);
        }
Пример #36
0
    public override bool WillBuyEstate(Estate e)
    {
        bool r = (Random.Range(0, 2) == 1);

        return(r);
    }
Пример #37
0
        private Estate CopyEstate(Estate estate)
        {
            Estate estateCopy;

            switch (estate.GetType().Name)
            {
            case "House":
                estateCopy = new House()
                {
                    EstateId  = estate.EstateId,
                    LegalForm = estate.LegalForm,
                    Address   = estate.Address
                };
                break;

            case "Apartment":
                estateCopy = new Apartment()
                {
                    EstateId  = estate.EstateId,
                    LegalForm = estate.LegalForm,
                    Address   = estate.Address
                };
                break;

            case "Shop":
                estateCopy = new Shop()
                {
                    EstateId  = estate.EstateId,
                    LegalForm = estate.LegalForm,
                    Address   = estate.Address
                };
                break;

            case "Townhouse":
                estateCopy = new Townhouse()
                {
                    EstateId  = estate.EstateId,
                    LegalForm = estate.LegalForm,
                    Address   = estate.Address
                };
                break;

            case "Villa":
                estateCopy = new Villa()
                {
                    EstateId  = estate.EstateId,
                    LegalForm = estate.LegalForm,
                    Address   = estate.Address
                };
                break;

            case "Warehouse":
                estateCopy = new Warehouse()
                {
                    EstateId  = estate.EstateId,
                    LegalForm = estate.LegalForm,
                    Address   = estate.Address
                };
                break;

            default:
                estateCopy = null;
                break;
            }
            return(estateCopy);
        }
Пример #38
0
        public TreasuryReportViewModel GetItemId(bool IsCustody, string DEPT_ITEM, string UserBranch)
        {
            var result = new TreasuryReportViewModel();
            List <SelectOption> jobProject = new List <SelectOption>(); //庫存表名稱
            List <SelectOption> vName      = new List <SelectOption>(); //股票編號
            List <SelectOption> TRAD       = new List <SelectOption>(); //交易對象
            List <SelectOption> dept       = new List <SelectOption>(); //權責部門
            List <SelectOption> branch     = new List <SelectOption>(); //權責科別
            var strs = new List <string>();

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var deps  = new Treasury.Web.Service.Actual.Common().GetDepts();
                var items = new List <string>()
                {
                    Ref.TreaItemType.D1012.ToString(), // 空白票據項目 用於條件判斷
                    Ref.TreaItemType.D1019.ToString(), // 其他物品項目 用於條件判斷
                };
                var bill = Ref.TreaItemType.D1012.ToString();

                //if (IsCustody)
                //{
                //jobProject = db.TREA_ITEM.AsNoTracking() // 抓資料表的所有資料
                //             .Where(x => x.ITEM_OP_TYPE == "3" &&
                //             x.IS_DISABLED == "N" &&
                //             !items.Contains(x.ITEM_ID)) //條件
                //             .AsEnumerable().Select(x => new SelectOption()
                //             {
                //                   Value = x.ITEM_ID,
                //                   Text = x.ITEM_DESC
                //             }).ToList();

                //印章
                //  if(db.ITEM_SEAL.AsNoTracking()//抓取在庫的所有資料
                //.Where(x => x.INVENTORY_STATUS == "1")
                //.Select(x => x.TREA_ITEM_NAME)
                //.Distinct()
                //.OrderBy(x => x).ToList().Count > 0 )
                //      strs.Add(Ref.TreaItemType.D1013.ToString());

                //}
                //else
                //{
                //印章
                strs = db.ITEM_SEAL.AsNoTracking()    //抓取在庫的所有資料
                       .Where(x => x.INVENTORY_STATUS == "1")
                       .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                       .Select(x => x.TREA_ITEM_NAME)
                       .Distinct()
                       .OrderBy(x => x).ToList();


                if (db.ITEM_DEP_ORDER_M.AsNoTracking()    //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1013.ToString());
                }

                if (db.ITEM_REAL_ESTATE.AsNoTracking()   //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1014.ToString());
                }

                if (db.ITEM_STOCK.AsNoTracking()   //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1015.ToString());
                }

                if (db.ITEM_REFUNDABLE_DEP.AsNoTracking()   //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1016.ToString());
                }

                if (db.ITEM_DEP_RECEIVED.AsNoTracking()   //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1017.ToString());
                }

                if (db.ITEM_IMPO.AsNoTracking()   //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1018.ToString());
                }

                if (db.ITEM_OTHER.AsNoTracking()    //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1019.ToString());
                }

                if (db.ITEM_CA.AsNoTracking()   //抓取在庫的所有資料
                    .Where(x => x.INVENTORY_STATUS == "1")
                    .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch, !IsCustody)
                    .Select(x => x.CHARGE_SECT)
                    .Distinct()
                    .OrderBy(x => x).ToList().Count > 0)
                {
                    strs.Add(Ref.TreaItemType.D1024.ToString());
                }
                // }

                jobProject = db.TREA_ITEM.AsNoTracking() // 抓資料表的所有資料
                             .Where(x => x.ITEM_OP_TYPE == "3" &&
                                    x.IS_DISABLED == "N" &&
                                    !items.Contains(x.ITEM_ID) &&
                                    strs.Contains(x.ITEM_ID)) //條件
                             .AsEnumerable().Select(x => new SelectOption()
                {
                    Value = x.ITEM_ID,
                    Text  = x.ITEM_DESC
                }).ToList();

                if (strs.Count > 0)
                {
                    string           firstItem = strs.FirstOrDefault();
                    Ref.TreaItemType _firstItem;
                    if (System.Enum.TryParse(firstItem, false, out _firstItem))
                    {
                        switch (_firstItem)
                        {
                        case Ref.TreaItemType.D1008:    //印章
                        case Ref.TreaItemType.D1009:
                        case Ref.TreaItemType.D1010:
                        case Ref.TreaItemType.D1011:
                            var item = firstItem;

                            strs = db.ITEM_SEAL.AsNoTracking()    //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1" &&
                                          x.TREA_ITEM_NAME == item)
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1013:                  //定期存單
                            strs = db.ITEM_DEP_ORDER_M.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1014:                  //不動產
                            strs = db.ITEM_REAL_ESTATE.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1015:            //股票
                            strs = db.ITEM_STOCK.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1016:                     //存出保證金
                            strs = db.ITEM_REFUNDABLE_DEP.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1017:                   //存入保證金
                            strs = db.ITEM_DEP_RECEIVED.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1018:           //重要物品
                            strs = db.ITEM_IMPO.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1019:            //其他物品
                            strs = db.ITEM_OTHER.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;

                        case Ref.TreaItemType.D1024:         //電子憑證
                            strs = db.ITEM_CA.AsNoTracking() //抓取在庫的所有資料
                                   .Where(x => x.INVENTORY_STATUS == "1")
                                   .Select(x => x.CHARGE_DEPT)
                                   .Distinct()
                                   .OrderBy(x => x).ToList();
                            break;
                        }
                    }
                }

                //var ITEM_SEALs= db.ITEM_SEAL.AsNoTracking()//抓取在庫的所有資料
                //.Where(x => x.INVENTORY_STATUS == "1").ToList();

                List <SelectOption> _dept   = new List <SelectOption>();
                List <SelectOption> _branch = new List <SelectOption>();

                _dept = strs.Select(x => x).Distinct()
                        .OrderBy(x => x)
                        .Select(x => new SelectOption()
                {
                    Value = x,
                    Text  = deps.FirstOrDefault(y => y.DPT_CD == x)?.DPT_NAME
                }).ToList();

                var vNames = new Stock().GetStockName();
                vNames.RemoveAt(0);
                vNames.Insert(0, new SelectOption()
                {
                    Value = "All", Text = "All"
                });
                result.vName = vNames;
                var vBook_Nos = new Estate().GetBuildName();
                vBook_Nos.RemoveAt(0);
                vBook_Nos.Insert(0, new SelectOption()
                {
                    Value = "All", Text = "All"
                });
                result.vBook_No = vBook_Nos;
                TRAD            = new Deposit().GetTRAD_Partners();
                TRAD.Insert(0, new SelectOption()
                {
                    Value = "All", Text = "All"
                });
                result.vTRAD_Partners = TRAD;
                result.vdept          = _dept;
                result.vjobProject    = jobProject;
                return(result);
            }
        }
Пример #39
0
 private void Clear(Estate e)
 {
     e.EstateId  = null;
     e.Address   = null;
     e.LegalForm = default;
 }
Пример #40
0
 public void DismissHero(Hero dismissedHero)
 {
     Heroes.Remove(dismissedHero);
     Estate.ReturnRosterId(dismissedHero.RosterId);
     DarkestSoundManager.PlayOneShot("event:/ui/town/let_go");
 }
        public IActionResult Import(IFormFile file, [FromServices] IConfiguration Config)
        {
            // 创建明细系列
            var series = new Series
            {
                Time = DateTime.Now
            };

            DB.Serieses.Add(series);
            DB.SaveChanges();

            var fname = Guid.NewGuid().ToString().Replace("-", "") + System.IO.Path.GetExtension(file.GetFileName());
            var path  = System.IO.Path.Combine(System.IO.Path.GetTempPath(), fname);

            file.SaveAs(path);
            string connStr;

            if (System.IO.Path.GetExtension(path) == ".xls")
            {
                connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
            }
            else
            {
                connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
            }
            Task.Factory.StartNew(() =>
            {
                using (var serviceScope = services.GetRequiredService <IServiceScopeFactory>().CreateScope())
                {
                    DB = serviceScope.ServiceProvider.GetService <GridContext>();
                    DB.ChangeTracker.AutoDetectChangesEnabled = false;
                    DB.ChangeTracker.QueryTrackingBehavior    = QueryTrackingBehavior.NoTracking;
                    series = DB.Serieses.Where(x => x.Id == series.Id).Single();
                    using (var conn = new OleDbConnection(connStr))
                    {
                        conn.Open();
                        var schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                        var rows        = schemaTable.Rows;
                        foreach (DataRow r in rows)
                        {
                            if (r["TABLE_NAME"].ToString().Last() != '$')
                            {
                                continue;
                            }
                            using (var adapter = new OleDbDataAdapter($"select * from [{r["TABLE_NAME"].ToString()}]", conn))
                                using (var dt = new DataTable())
                                {
                                    adapter.Fill(dt);
                                    lock (this)
                                    {
                                        series            = DB.Serieses.Where(x => x.Id == series.Id).Single();
                                        series.TotalCount = series.TotalCount + dt.Rows.Count;
                                        DB.Update(series);
                                        DB.SaveChanges();
                                    }

                                    for (var i = 0; i < dt.Rows.Count; i++)
                                    {
                                        var reader = dt.Rows[i];
                                        using (var innerServiceScope = services.GetRequiredService <IServiceScopeFactory>().CreateScope())
                                            using (var db = innerServiceScope.ServiceProvider.GetService <GridContext>())
                                            {
                                                db.ChangeTracker.AutoDetectChangesEnabled = false;
                                                db.ChangeTracker.QueryTrackingBehavior    = QueryTrackingBehavior.NoTracking;
                                                try
                                                {
                                                    var record = new Record
                                                    {
                                                        Account          = reader["接入号"].ToString(),
                                                        CustomerName     = reader["用户姓名"].ToString(),
                                                        ContractorName   = reader["四级承包人名称"].ToString(),
                                                        ContractorStruct = reader["四级承包体名称"].ToString(),
                                                        ServiceStaff     = reader["包服人"].ToString(),
                                                        MDS = reader["中投"].ToString(),
                                                        ImplementAddress = reader["装机地址"].ToString(),
                                                        StandardAddress  = reader["标准地址"].ToString(),
                                                        Set              = reader["套餐"].ToString(),
                                                        SalesProduction  = reader["融合促销包"].ToString(),
                                                        Phone            = reader["联系电话"].ToString(),
                                                        IsFuse           = reader["是否家庭融合宽带"].ToString() == "是",
                                                        ImportedTime     = series.Time,
                                                        SeriesId         = series.Id,
                                                        BusinessHallId   = reader["营业厅编号"].ToString(),
                                                        BusinessHallName = reader["营业厅名称"].ToString(),
                                                        FuseIdentifier   = reader["用户标识"].ToString(),
                                                        IsHardLink       = reader["用户类型"].ToString() != "CDMA"
                                                    };
                                                    #region Try parse
                                                    try
                                                    {
                                                        record.CurrentMonthBill = Convert.ToDouble(reader["当月出帐"].ToString());
                                                    }
                                                    catch
                                                    {
                                                        record.CurrentMonthBill = 0;
                                                    }

                                                    try
                                                    {
                                                        record.AgentFee = Convert.ToDouble(reader["代理费"].ToString());
                                                    }
                                                    catch
                                                    {
                                                        record.AgentFee = 0;
                                                    }

                                                    try
                                                    {
                                                        record.Commission = Convert.ToDouble(reader["一次佣金"].ToString());
                                                    }
                                                    catch
                                                    {
                                                        record.Commission = 0;
                                                    }

                                                    try
                                                    {
                                                        record.Arrearage = Convert.ToDouble(reader["欠费"].ToString());
                                                    }
                                                    catch
                                                    {
                                                        record.Arrearage = 0;
                                                    }

                                                    try
                                                    {
                                                        if (reader["用户状态"].ToString() == "欠停(双向)")
                                                        {
                                                            record.Status = ServiceStatus.双向欠停;
                                                        }
                                                        else if (reader["用户状态"].ToString() == "欠停(单向)")
                                                        {
                                                            record.Status = ServiceStatus.单向欠停;
                                                        }
                                                        else
                                                        {
                                                            record.Status = (ServiceStatus)Enum.Parse(typeof(ServiceStatus), reader["用户状态"].ToString());
                                                        }
                                                    }
                                                    catch
                                                    {
                                                        record.Status = ServiceStatus.未知;
                                                    }

                                                    try
                                                    {
                                                        record.PRCID = (Convert.ToInt64(reader["身份证号码"])).ToString();
                                                    }
                                                    catch
                                                    {
                                                        record.PRCID = null;
                                                    }
                                                    #endregion
                                                    db.Records.Add(record);
                                                    db.SaveChanges();
                                                    // 如果记录是固网的,才有可能进行营业厅和具体楼宇的对应
                                                    if (record.IsHardLink)
                                                    {
                                                        #region Creating business hall
                                                        var bh = db.BusinessHalls
                                                                 .Where(x => x.Id == record.BusinessHallId)
                                                                 .SingleOrDefault();
                                                        try
                                                        {
                                                            if (bh == null)
                                                            {
                                                                bh = new BusinessHall
                                                                {
                                                                    Id    = record.BusinessHallId,
                                                                    Title = Lib.AddressAnalyser.FilterBrackets(record.BusinessHallName)
                                                                };
                                                                var title = bh.Title;
                                                                if (bh.Title.IndexOf("中国电信") < 0)
                                                                {
                                                                    title = "中国电信" + bh.Title;
                                                                }
                                                                if (bh.Title.IndexOf("营业厅") < 0)
                                                                {
                                                                    title = bh.Title + "营业厅";
                                                                }
                                                                var bmapJson = Lib.HttpHelper.Get($"http://api.map.baidu.com/geocoder/v2/?city={Config["BMap:City"]}&address={title}&output=json&ak={Config["BMap:ApplicationKey"]}");
                                                                dynamic bmap = JsonConvert.DeserializeObject <dynamic>(bmapJson);
                                                                bh.Lon       = bmap.result.location.lng;
                                                                bh.Lat       = bmap.result.location.lat;
                                                                db.BusinessHalls.Add(bh);
                                                                db.SaveChanges();
                                                            }
                                                        }
                                                        catch
                                                        {
                                                        }
                                                        #endregion
                                                        #region Mapping to house
                                                        try
                                                        {
                                                            // 查找是否有对应到楼宇的记录
                                                            var house = db.Houses
                                                                        .Include(x => x.Building)
                                                                        .ThenInclude(x => x.Estate)
                                                                        .ThenInclude(x => x.Rules)
                                                                        .Where(x => x.Account == record.Account)
                                                                        .SingleOrDefault();
                                                            if (house != null)
                                                            {
                                                                // 检查地址变更
                                                                var rules = house.Building.Estate.Rules
                                                                            .Select(x => x.Rule)
                                                                            .ToList();
                                                                var flag = false;
                                                                foreach (var x in rules)
                                                                {
                                                                    if (record.ImplementAddress.Contains(x) || record.StandardAddress.Contains(x))
                                                                    {
                                                                        flag = true;
                                                                        break;
                                                                    }
                                                                }

                                                                // 如果地址变更则更新地址信息
                                                                if (!flag)
                                                                {
                                                                    var estate = db.EstateRules
                                                                                 .Include(x => x.Estate)
                                                                                 .ThenInclude(x => x.Buildings)
                                                                                 .Where(x => record.StandardAddress.Contains(x.Rule) || record.ImplementAddress.Contains(x.Rule))
                                                                                 .Select(x => x.Estate)
                                                                                 .FirstOrDefault();
                                                                    if (estate != null)
                                                                    {
                                                                        var building  = Lib.AddressAnalyser.GetBuildingNumber(record.ImplementAddress);
                                                                        var _building = estate.Buildings
                                                                                        .Where(a => a.Title == building)
                                                                                        .SingleOrDefault();
                                                                        var unit  = Lib.AddressAnalyser.GetUnit(record.ImplementAddress);
                                                                        var layer = Lib.AddressAnalyser.GetLayer(record.ImplementAddress);
                                                                        var door  = Lib.AddressAnalyser.GetDoor(record.ImplementAddress);
                                                                        if (!string.IsNullOrEmpty(building) && unit.HasValue && layer.HasValue && door.HasValue && _building != null)
                                                                        {
                                                                            if (db.Houses.Where(x => x.BuildingId == _building.Id && x.Unit == unit.Value && x.Layer == layer.Value && x.Door == door.Value).Count() == 0)
                                                                            {
                                                                                if (unit.Value > _building.Units)
                                                                                {
                                                                                    _building.Units = unit.Value;
                                                                                }
                                                                                if (layer.Value < _building.BottomLayers)
                                                                                {
                                                                                    _building.BottomLayers = layer.Value;
                                                                                }
                                                                                if (layer.Value > _building.TopLayers)
                                                                                {
                                                                                    _building.TopLayers = layer.Value;
                                                                                }
                                                                                if (door > _building.Doors)
                                                                                {
                                                                                    _building.Doors = door.Value;
                                                                                }
                                                                                house.BuildingId      = _building.Id;
                                                                                house.Unit            = unit.Value;
                                                                                house.Layer           = layer.Value;
                                                                                house.Door            = door.Value;
                                                                                house.Phone           = record.Phone;
                                                                                house.FullName        = record.CustomerName;
                                                                                house.IsStatusChanged = record.Status != house.ServiceStatus;
                                                                                house.HardlinkStatus  = record.Status;
                                                                                house.FuseIdentifier  = record.FuseIdentifier;
                                                                                house.IsFuse          = record.IsFuse;
                                                                                house.LastUpdate      = DateTime.Now;
                                                                                house.HouseStatus     = HouseStatus.中国电信;
                                                                                house.BusinessHallId  = bh.Id;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                var estate = db.EstateRules
                                                                             .Include(x => x.Estate)
                                                                             .ThenInclude(x => x.Buildings)
                                                                             .Where(x => record.StandardAddress.Contains(x.Rule) || record.ImplementAddress.Contains(x.Rule))
                                                                             .Select(x => x.Estate)
                                                                             .FirstOrDefault();
                                                                if (estate != null)
                                                                {
                                                                    var building  = Lib.AddressAnalyser.GetBuildingNumber(record.ImplementAddress);
                                                                    var _building = db.Buildings
                                                                                    .Where(a => a.EstateId == estate.Id && a.Title == building)
                                                                                    .SingleOrDefault();
                                                                    var unit  = Lib.AddressAnalyser.GetUnit(record.ImplementAddress);
                                                                    var layer = Lib.AddressAnalyser.GetLayer(record.ImplementAddress);
                                                                    var door  = Lib.AddressAnalyser.GetDoor(record.ImplementAddress);
                                                                    if (!string.IsNullOrEmpty(building) && unit.HasValue && layer.HasValue && door.HasValue)
                                                                    {
                                                                        if (_building != null)
                                                                        {
                                                                            if (db.Houses.Where(x => x.BuildingId == _building.Id && x.Unit == unit.Value && x.Layer == layer.Value && x.Door == door.Value).Count() == 0)
                                                                            {
                                                                                if (unit.Value > _building.Units)
                                                                                {
                                                                                    _building.Units = unit.Value;
                                                                                }
                                                                                if (layer.Value < _building.BottomLayers)
                                                                                {
                                                                                    _building.BottomLayers = layer.Value;
                                                                                }
                                                                                if (layer.Value > _building.TopLayers)
                                                                                {
                                                                                    _building.TopLayers = layer.Value;
                                                                                }
                                                                                if (door > _building.Doors)
                                                                                {
                                                                                    _building.Doors = door.Value;
                                                                                }
                                                                                db.Update(_building);
                                                                                db.SaveChanges();
                                                                                house                 = new House();
                                                                                house.Account         = record.Account;
                                                                                house.BuildingId      = _building.Id;
                                                                                house.Unit            = unit.Value;
                                                                                house.Layer           = layer.Value;
                                                                                house.Door            = door.Value;
                                                                                house.Phone           = record.Phone;
                                                                                house.FullName        = record.CustomerName;
                                                                                house.IsStatusChanged = true;
                                                                                house.HardlinkStatus  = record.Status;
                                                                                house.FuseIdentifier  = record.FuseIdentifier;
                                                                                house.IsFuse          = record.IsFuse;
                                                                                house.LastUpdate      = DateTime.Now;
                                                                                house.HouseStatus     = HouseStatus.中国电信;
                                                                                house.BusinessHallId  = bh.Id;
                                                                                db.Houses.Add(house);
                                                                            }
                                                                        }
                                                                        else
                                                                        {
                                                                            if (door < 2)
                                                                            {
                                                                                door = 2;
                                                                            }
                                                                            int bottom = 1;
                                                                            int top    = 1;
                                                                            if (layer < 0)
                                                                            {
                                                                                bottom = layer.Value;
                                                                            }
                                                                            if (layer > 0)
                                                                            {
                                                                                top = layer.Value;
                                                                            }
                                                                            _building = new Building
                                                                            {
                                                                                Title        = building,
                                                                                EstateId     = estate.Id,
                                                                                BottomLayers = bottom,
                                                                                TopLayers    = top,
                                                                                Units        = unit.Value,
                                                                                Doors        = door.Value
                                                                            };
                                                                            db.Buildings.Add(_building);
                                                                            house                 = new House();
                                                                            house.Account         = record.Account;
                                                                            house.BuildingId      = _building.Id;
                                                                            house.Unit            = unit.Value;
                                                                            house.Layer           = layer.Value;
                                                                            house.Door            = door.Value;
                                                                            house.Phone           = record.Phone;
                                                                            house.FullName        = record.CustomerName;
                                                                            house.IsStatusChanged = true;
                                                                            house.HardlinkStatus  = record.Status;
                                                                            house.IsFuse          = record.IsFuse;
                                                                            house.FuseIdentifier  = record.FuseIdentifier;
                                                                            house.LastUpdate      = DateTime.Now;
                                                                            house.HouseStatus     = HouseStatus.中国电信;
                                                                            house.BusinessHallId  = bh.Id;
                                                                            db.Houses.Add(house);
                                                                        }
                                                                    }
                                                                }
                                                                else // 不存在则尝试创建
                                                                {
                                                                    var estateTitle = Lib.AddressAnalyser.GetEstate(record.ImplementAddress);
                                                                    if (!string.IsNullOrEmpty(estateTitle))
                                                                    {
                                                                        var bmapJson = Lib.HttpHelper.Get($"http://api.map.baidu.com/geocoder/v2/?city={Config["BMap:City"]}&address={record.ImplementAddress}&output=json&ak={Config["BMap:ApplicationKey"]}");
                                                                        dynamic bmap = JsonConvert.DeserializeObject <dynamic>(bmapJson);
                                                                        if (bmap.status == 0)
                                                                        {
                                                                            var es = new Estate
                                                                            {
                                                                                Title = estateTitle,
                                                                                Lon   = bmap.result.location.lng,
                                                                                Lat   = bmap.result.location.lat,
                                                                                Area  = ""
                                                                            };
                                                                            db.Estates.Add(es);
                                                                            db.EstateRules.Add(new EstateRule
                                                                            {
                                                                                EstateId = es.Id,
                                                                                Rule     = estateTitle
                                                                            });
                                                                            var building = Lib.AddressAnalyser.GetBuildingNumber(record.ImplementAddress);
                                                                            var unit     = Lib.AddressAnalyser.GetUnit(record.ImplementAddress);
                                                                            var layer    = Lib.AddressAnalyser.GetLayer(record.ImplementAddress);
                                                                            var door     = Lib.AddressAnalyser.GetDoor(record.ImplementAddress);
                                                                            if (!string.IsNullOrEmpty(building) && unit.HasValue && layer.HasValue && door.HasValue)
                                                                            {
                                                                                if (door < 2)
                                                                                {
                                                                                    door = 2;
                                                                                }
                                                                                int bottom = 1;
                                                                                int top    = 1;
                                                                                if (layer < 0)
                                                                                {
                                                                                    bottom = layer.Value;
                                                                                }
                                                                                if (layer > 0)
                                                                                {
                                                                                    top = layer.Value;
                                                                                }
                                                                                var _building = new Building
                                                                                {
                                                                                    Title        = building,
                                                                                    EstateId     = es.Id,
                                                                                    BottomLayers = bottom,
                                                                                    TopLayers    = top,
                                                                                    Units        = unit.Value,
                                                                                    Doors        = door.Value
                                                                                };
                                                                                db.Buildings.Add(_building);
                                                                                house                 = new House();
                                                                                house.Account         = record.Account;
                                                                                house.BuildingId      = _building.Id;
                                                                                house.Unit            = unit.Value;
                                                                                house.Layer           = layer.Value;
                                                                                house.Door            = door.Value;
                                                                                house.Phone           = record.Phone;
                                                                                house.FullName        = record.CustomerName;
                                                                                house.IsStatusChanged = true;
                                                                                house.HardlinkStatus  = record.Status;
                                                                                house.FuseIdentifier  = record.FuseIdentifier;
                                                                                house.LastUpdate      = DateTime.Now;
                                                                                house.HouseStatus     = HouseStatus.中国电信;
                                                                                house.BusinessHallId  = bh.Id;
                                                                                db.Houses.Add(house);
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                            db.ChangeTracker.DetectChanges();
                                                            db.SaveChanges();
                                                        }
                                                        catch (Exception ex)
                                                        {
                                                            Console.WriteLine(ex.ToString());
                                                        }
                                                        GC.Collect();
                                                        #endregion
                                                    }
                                                    else // 否则只能根据用户标识来查询楼宇
                                                    {
                                                        var house = db.Houses
                                                                    .Where(x => x.FuseIdentifier == record.FuseIdentifier)
                                                                    .FirstOrDefault();
                                                        if (house != null)
                                                        {
                                                            // 如果找到了用户标识对应的house,则更新移动网状态
                                                            house.MobileStatus    = record.Status;
                                                            house.IsStatusChanged = record.Status != house.ServiceStatus;
                                                            house.IsFuse          = true;
                                                            house.LastUpdate      = DateTime.Now;
                                                            db.Update(house);
                                                            db.SaveChanges();
                                                        }
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    series = db.Serieses.Where(x => x.Id == series.Id).Single();
                                                    series.FailedCount++;
                                                    db.Update(series);
                                                    db.SaveChanges();
                                                    Console.WriteLine(ex.ToString());
                                                }
                                            }
                                    }
                                }
                            break;
                        }
                    }
                }
            });
            return(RedirectToAction("Series", "Record"));
        }
Пример #42
0
 public override decimal GetInitialPrice(Estate estate)
 {
     throw new NotImplementedException();
 }
Пример #43
0
            public string Value; //Declaring variable for the constructor

            #endregion Fields

            #region Constructors

            //**************************************************************************************************
            //Method:       public SCell(string Value = " ", Estate State = Estate.Invisible)
            //Purpose:      Create the constructor and initialize the variables
            //Parameters:   None
            //Returns:      None
            //**************************************************************************************************
            public SCell(string Value = " ", Estate State = Estate.Invisible)
            {
                this.Value = Value; // Sets the value
                this.State = State; // Sets the state
            }
        public override List <Tuple <Trajectory, ESegmentType> > segmentTrajectory(Trajectory trajectory)
        {
            List <Tuple <Trajectory, ESegmentType> > segments = new List <Tuple <Trajectory, ESegmentType> >();
            var state        = Estate.Square1;
            var histerthesis = 0.1;

            if (!Double.TryParse(ConfigurationManager.AppSettings["FSSThreshold"], out double threshold))
            {
                threshold = 2.0;
            }

            Trajectory t = new Trajectory
            {
                samplingRate = trajectory.samplingRate
            };
            long trajectoryLength = trajectory.points.Count;

            for (int i = 0; i < trajectoryLength; i++)
            {
                var p     = trajectory.points[i];
                var slope = trajectory.slopes[i];

                Estate observedState = state;
                if (p.z > threshold && p.x > 0)
                {
                    observedState = Estate.Square1;
                }
                if (p.z < threshold && p.x > 0)
                {
                    observedState = Estate.Square2;
                }
                if (p.z < threshold && p.x < 0)
                {
                    observedState = Estate.Square3;
                }
                if (p.z > threshold && p.x < 0)
                {
                    observedState = Estate.Square4;
                }

                if (observedState != state)
                {
                    if (Math.Abs(p.x) > histerthesis || (Math.Abs(p.z - threshold) > histerthesis))
                    {
                        segments.Add(new Tuple <Trajectory, ESegmentType>(t, GetSegmentType(state)));
                        t = new Trajectory
                        {
                            samplingRate = trajectory.samplingRate
                        };
                        state = observedState;
                    }
                }
                t.add(p, slope);
            }

            if (t.points.Any())
            {
                segments.Add(new Tuple <Trajectory, ESegmentType>(t, GetSegmentType(state)));
                t = new Trajectory
                {
                    samplingRate = trajectory.samplingRate
                };
            }

            return(segments);
        }
Пример #45
0
 public WindowChangeEstate(Estate estate)
 {
     InitializeComponent();
     GetData(estate);
 }
Пример #46
0
 public async Task AddAsync(Estate estate)
 {
     await _context.Estates.AddAsync(estate);
 }
Пример #47
0
		private void EditEstate(Estate estate) {
			itemEditCategoryBook.ShowTabByWidget(itemEditEstateAlign);
			
			itemEditZip.Text     = estate.Zip;
			itemEditCity.Text    = estate.City;
			itemEditStreet.Text  = estate.Street;
			itemEditCountry.Text = estate.Country;
		}
Пример #48
0
 public void Update(Estate estate)
 {
     _context.Estates.Update(estate);
 }
Пример #49
0
		private void EstatePropertyChanged(Widget w, Estate estate){
			if(object.ReferenceEquals(w,itemEditZip))	  
				estate.Zip = itemEditZip.Text;
			else if(object.ReferenceEquals(w,itemEditCity))      
				estate.City = itemEditCity.Text;
			else if(object.ReferenceEquals(w,itemEditStreet))    
				estate.Street = itemEditStreet.Text;
			else if(object.ReferenceEquals(w,itemEditCountry))   
				estate.Country = itemEditCountry.Text;
		}
Пример #50
0
    // Update is called once per frame
    void Update()
    {
        if(m_fTimerJump >= 0.0f)
            m_fTimerJump -= Time.deltaTime;

        switch(m_eState)
        {
            case Estate.e_Start:
            {
                if(m_fTimerWakeUp < m_fTimerWakeUpMax)
                {
                    m_fTimerWakeUp += Time.deltaTime;
                    float fAngleBefore = m_fAngleWake;
                    m_fAngleWake = CApoilMath.InterpolationLinear(m_fTimerWakeUp, 0.0f, m_fTimerWakeUpMax, 0.0f, 90.0f);
                    float fAngleRad = CApoilMath.ConvertDegreeToRadian(m_fAngleWake - fAngleBefore);
                    gameObject.transform.RotateAround(new Vector3(0,0,1), -fAngleRad);
                }
                else
                {
                    m_eState = Estate.e_normal;
                }
                break;
            }
            case Estate.e_normal:
            {
                InputsPlayer();
                Move();
                MoveHead();
                if(!m_Game.m_bInGame)
                {
                    m_fAngleWake = 0.0f;
                    m_eState = Estate.e_end_win;
                }
                break;
            }
            case Estate.e_end_win:
            {
                if(m_fTimerDie < m_fTimerDieMax)
                {
                    m_fTimerDie += Time.deltaTime;
                    float fAngleBefore = m_fAngleWake;
                    m_fAngleWake = CApoilMath.InterpolationLinear(m_fTimerDie, 0.0f, m_fTimerDieMax, 0.0f, 90.0f);
                    float fAngleRad = CApoilMath.ConvertDegreeToRadian(m_fAngleWake - fAngleBefore);
                    gameObject.transform.RotateAround(new Vector3(0,0,1), -fAngleRad);
                }
                else if(!m_bLaunchMenu)
                {
                    if(m_Game.m_bWin)
                        m_Game.gameObject.transform.GetComponent<CMenuEndGame>().StartMenu();
                    else
                        Application.LoadLevel(0);
                    m_bLaunchMenu = true;
                }

                break;
            }
        }
    }
Пример #51
0
    /// <summary>
    /// Reads the XML file where details of the map is stored.
    /// 1. Read the <district> tag to get the map background details
    /// 2. Read the <estate> tag nodes by nodes to get the estate icons details
    /// 
    /// The details are stored as private class Estate
    /// </summary>
    /// <param name="xmlPath">XML path of the XML file where estate details are stored</param>
    void LoadEstatesXml(string xmlPath)
    {
        sceneMonitor.GetComponent<SceneManager>().SetXMLPath(xmlPath);

        //**********************************************************************
        //*																	   *
        //*     Read the XML for details about individual dsitrict TEXTURE     *
        //*																	   *
        //**********************************************************************
            xmlDoc = new XmlDocument ();
            //xmlDoc.LoadXml (File.ReadAllText (xmlPath));
            TextAsset xmlText = (TextAsset) Resources.Load(xmlPath);
            xmlDoc.LoadXml(xmlText.text);
            xmlNode = xmlDoc.SelectSingleNode ("district");

        mapTexture = (Texture2D) Resources.Load ("Texture/Map/BG_District/" + xmlNode.Attributes.GetNamedItem("texture").Value);

        //******************************************************************************
        //*																	   		   *
        //*     Read the XML for details about individual estates ICONs on the map     *
        //*																	   		   *
        //******************************************************************************

        int estatesCount = xmlNode.ChildNodes.Count;
        estates = new Estate[estatesCount];

        for (int i = 0; i < estatesCount; i++) {
            GUIStyle guiStyle = new GUIStyle ();

            string subpath = "Texture/Map/Icon_DistrictMap/";
            string texName = xmlNode.ChildNodes [i].Attributes.GetNamedItem ("texture").Value;
            string[] pos = xmlNode.ChildNodes [i].Attributes.GetNamedItem ("pos").Value.Split (",".ToCharArray ());

            Estate estate = new Estate ();
            estate.estateName = xmlNode.ChildNodes[i].Attributes.GetNamedItem("name").Value;

            //*****************************************************************************
            //*  	        														      *
            //*     Read the XML for details about individual estate TEXTURE (normal)     *
            //*																       		  *
            //*****************************************************************************
            estate.enabled = xmlNode.ChildNodes [i].Attributes.GetNamedItem ("enabled").Value.Equals ("true");
            estate.estateMapXmlPath = xmlNode.ChildNodes [i].Attributes.GetNamedItem ("map").Value;

            Texture2D texture = (Texture2D) Resources.Load (subpath + texName + "_Normal");

            estate.position = new Rect (Convert.ToInt32(pos[0].Trim()), Convert.ToInt32(pos[1].Trim()), texture.width, texture.height);

            guiStyle.normal.background = texture;

            //******************************************************************************
            //*  	        														       *
            //*     Read the XML for details about individual estate TEXTURE (clicked)     *
            //*																       		   *
            //******************************************************************************
            texture = (Texture2D) Resources.Load(subpath + texName + "_Clicked");

            //assign to the GUI style
            guiStyle.active.background = texture;
            guiStyle.focused.background = texture;
            estate.guiStyle = guiStyle;
            estates [i] = estate;
        }
    }